Data Provider and tests
This commit is contained in:
75
data/models.py
Executable file
75
data/models.py
Executable file
@ -0,0 +1,75 @@
|
||||
from dataclasses import dataclass
|
||||
from datetime import date
|
||||
from typing import Optional, List
|
||||
|
||||
|
||||
class Enterprise:
|
||||
def __init__(
|
||||
self,
|
||||
_id: Optional[int],
|
||||
activities: List['Activity'],
|
||||
divisions: List['Division'],
|
||||
contact_info: 'ContactInfo',
|
||||
name: str,
|
||||
short_name: str
|
||||
|
||||
):
|
||||
self.id = _id
|
||||
self.activities = activities
|
||||
self.divisions = divisions
|
||||
self.contact_info = contact_info
|
||||
self.name = name
|
||||
self.short_name = short_name
|
||||
|
||||
|
||||
@dataclass
|
||||
class PhoneNumber:
|
||||
id: Optional[int]
|
||||
date_of_start: date
|
||||
date_of_end: Optional[date]
|
||||
|
||||
|
||||
class ContactInfo:
|
||||
def __init__(self, _id: Optional[int],
|
||||
email: str,
|
||||
phone_numbers: List[PhoneNumber],
|
||||
head: List['Head'],
|
||||
locations: List['Location']
|
||||
):
|
||||
self.id = _id
|
||||
self.phone_numbers = phone_numbers
|
||||
self.head = head
|
||||
self.email = email
|
||||
self.locations = locations
|
||||
|
||||
|
||||
@dataclass
|
||||
class Activity:
|
||||
id: Optional[int]
|
||||
name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class Division:
|
||||
id: Optional[int]
|
||||
contact_info: ContactInfo
|
||||
activities: List[Activity]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Head:
|
||||
id: Optional[int]
|
||||
date_of_start: date
|
||||
date_of_end: Optional[date]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Location:
|
||||
id: Optional[int]
|
||||
country: str
|
||||
city: str
|
||||
street: str
|
||||
house: str
|
||||
room: str
|
||||
date_of_start: date
|
||||
date_of_end: Optional[date]
|
||||
Reference in New Issue
Block a user