Initial commit

This commit is contained in:
2026-06-01 16:48:21 +02:00
commit 53d157535a
159 changed files with 13641 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
"""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,
)