Initial commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user