sumaq/backend/app/schemas/activity.py

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