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

26 lines
901 B
Python

"""Domain entity: PersonalData (parent profile).
A PersonalData represents a parent in the planning workspace. It intentionally
exists without a User login so that solo planning for a partner who hasn't
registered is possible (see ARCHITECTURE.md §3.0).
personnummer storage is discouraged (see §11). If kept, personnummer_enc must
be keyed HMAC / authenticated encryption — never a plain SHA-256.
"""
from dataclasses import dataclass, field
from datetime import datetime
from uuid import UUID
@dataclass
class PersonalData:
uuid: UUID
workspace_id: UUID
name: str
salary_type: str = "monthly" # 'monthly' | 'hourly'
employment_status: str = "employed" # 'employed' | 'jobseeking' | 'none'
personnummer_enc: str | None = None # encrypted/HMAC; prefer None
created_at: datetime | None = field(default=None)
deleted_at: datetime | None = field(default=None)