Files
F-r-ldraledigplannerare/backend/app/models/personal_data.py
T
2026-06-01 16:48:21 +02:00

42 lines
1.2 KiB
Python

"""API schemas (Pydantic) for PersonalData.
Schemas validate request bodies and shape responses. Separate from domain entities
so the wire format can evolve independently.
"""
from datetime import datetime
from uuid import UUID
from pydantic import BaseModel, Field
from app.entities.personal_data import PersonalData
class PersonalDataUpdate(BaseModel):
"""Partial update — all fields optional."""
salary_type: str | None = Field(None, pattern="^(monthly|hourly)$")
employment_status: str | None = Field(None, pattern="^(employed|jobseeking|none)$")
class PersonalDataResponse(BaseModel):
uuid: UUID
workspace_id: UUID
name: str
salary_type: str
employment_status: str
created_at: datetime | None
deleted_at: datetime | None
@classmethod
def from_entity(cls, entity: PersonalData) -> "PersonalDataResponse":
return cls(
uuid=entity.uuid,
workspace_id=entity.workspace_id,
name=entity.name,
salary_type=entity.salary_type,
employment_status=entity.employment_status,
created_at=entity.created_at,
deleted_at=entity.deleted_at,
)