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