Files
aesthetic-immich-starter/backend/app/schemas.py
T

149 lines
3.4 KiB
Python

from datetime import datetime
from pydantic import BaseModel, ConfigDict
class PatientCreate(BaseModel):
first_name: str
last_name: str
birth_date: str | None = None
phone: str | None = None
email: str | None = None
procedure: str | None = None
status: str | None = "actif"
consent_signed: str | None = "non"
notes: str | None = None
class PatientUpdate(BaseModel):
first_name: str | None = None
last_name: str | None = None
birth_date: str | None = None
phone: str | None = None
email: str | None = None
procedure: str | None = None
status: str | None = None
consent_signed: str | None = None
notes: str | None = None
class PatientOut(BaseModel):
id: int
first_name: str
last_name: str
birth_date: str | None
phone: str | None = None
email: str | None = None
procedure: str | None = None
status: str | None = None
consent_signed: str | None = None
notes: str | None
immich_album_id: str | None
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class PhotoOut(BaseModel):
id: int
patient_id: int
immich_asset_id: str
immich_album_id: str
kind: str
filename: str
notes: str | None
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class PhotoUpdate(BaseModel):
kind: str | None = None
notes: str | None = None
class ImmichPersonOut(BaseModel):
id: str
name: str | None = None
thumbnail_url: str
is_hidden: bool | None = None
class ImmichAssetOut(BaseModel):
id: str
filename: str | None = None
thumbnail_url: str
file_url: str
taken_at: str | None = None
type: str | None = None
class ConsultationCreate(BaseModel):
consultation_date: str | None = None
procedure: str | None = None
reason: str | None = None
plan: str | None = None
follow_up: str | None = None
status: str | None = "prévu"
notes: str | None = None
class ConsultationUpdate(BaseModel):
consultation_date: str | None = None
procedure: str | None = None
reason: str | None = None
plan: str | None = None
follow_up: str | None = None
status: str | None = None
notes: str | None = None
class ConsultationOut(BaseModel):
id: int
patient_id: int
consultation_date: str | None = None
procedure: str | None = None
reason: str | None = None
plan: str | None = None
follow_up: str | None = None
status: str | None = None
notes: str | None = None
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class DocumentCreate(BaseModel):
consultation_id: int | None = None
document_type: str | None = "consentement_photo"
title: str
status: str | None = "brouillon"
content: str | None = None
signed_by: str | None = None
signed_at: str | None = None
class DocumentUpdate(BaseModel):
consultation_id: int | None = None
document_type: str | None = None
title: str | None = None
status: str | None = None
content: str | None = None
signed_by: str | None = None
signed_at: str | None = None
class DocumentOut(BaseModel):
id: int
patient_id: int
consultation_id: int | None = None
document_type: str
title: str
status: str
content: str | None = None
signed_by: str | None = None
signed_at: str | None = None
created_at: datetime
model_config = ConfigDict(from_attributes=True)