28 lines
736 B
Python
28 lines
736 B
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
from .specialty import Specialty
|
|
from .contractor import Contractor
|
|
|
|
class ProjectBase(BaseModel):
|
|
name: str
|
|
code: str
|
|
location: Optional[str] = None
|
|
start_date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
status: str = "active"
|
|
parent_id: Optional[int] = None
|
|
|
|
class ProjectCreate(ProjectBase):
|
|
specialty_ids: Optional[List[int]] = []
|
|
contractor_ids: Optional[List[int]] = []
|
|
|
|
class Project(ProjectBase):
|
|
id: int
|
|
specialties: List[Specialty] = []
|
|
contractors: List[Contractor] = []
|
|
subprojects: List['Project'] = []
|
|
|
|
class Config:
|
|
from_attributes = True
|