45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
from app.models.models import ActivityType
|
|
from .project import Project
|
|
from .evidence import Evidence
|
|
from .non_conformity import NonConformity
|
|
|
|
class ActivityBase(BaseModel):
|
|
project_id: int
|
|
specialty_id: int
|
|
contractor_id: Optional[int] = None
|
|
type: ActivityType = ActivityType.INSPECTION
|
|
area: Optional[str] = None
|
|
description: Optional[str] = None
|
|
observations: Optional[str] = None
|
|
audio_transcription: Optional[str] = None
|
|
status: str = "completed"
|
|
date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
|
|
class ActivityUpdate(BaseModel):
|
|
project_id: Optional[int] = None
|
|
specialty_id: Optional[int] = None
|
|
contractor_id: Optional[int] = None
|
|
area: Optional[str] = None
|
|
description: Optional[str] = None
|
|
observations: Optional[str] = None
|
|
status: Optional[str] = None
|
|
date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
|
|
class ActivityCreate(ActivityBase):
|
|
pass
|
|
|
|
class Activity(ActivityBase):
|
|
id: int
|
|
user_id: int
|
|
project: Optional[Project] = None
|
|
evidences: List[Evidence] = []
|
|
non_conformities: List[NonConformity] = []
|
|
|
|
class Config:
|
|
from_attributes = True
|