sumaq/backend/app/schemas/non_conformity.py

47 lines
1.5 KiB
Python

from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
from app.models.models import NCLevel, NCType
from .evidence import Evidence
class NonConformityBase(BaseModel):
level: NCLevel = NCLevel.MINOR
description: str
status: str = "open"
due_date: Optional[datetime] = None
responsible_person: Optional[str] = None
responsible_email: Optional[str] = None
contractor_id: Optional[int] = None
access_hash: Optional[str] = None
action_checklist: Optional[List[dict]] = None
nc_type: Optional[NCType] = None
impact_description: Optional[str] = None
closure_description: Optional[str] = None
guest_actions: Optional[str] = None
parent_id: Optional[int] = None
class NonConformityCreate(NonConformityBase):
activity_id: int
class NonConformityUpdate(BaseModel):
due_date: Optional[datetime] = None
responsible_person: Optional[str] = None
responsible_email: Optional[str] = None
contractor_id: Optional[int] = None
access_hash: Optional[str] = None
action_checklist: Optional[List[dict]] = None
nc_type: Optional[NCType] = None
impact_description: Optional[str] = None
closure_description: Optional[str] = None
status: Optional[str] = None
guest_actions: Optional[str] = None
class NonConformity(NonConformityBase):
id: int
activity_id: int
evidences: List[Evidence] = []
child_ncs: List['NonConformity'] = []
class Config:
from_attributes = True