28 lines
785 B
Python

from pydantic import BaseModel, model_validator, EmailStr
from typing import Self
from .enums import Membership, LanguageOption
from .submodels import Address
class PersonModel(BaseModel):
membership: Membership
first_name: str
tussenvoegsels: str | None = None # only in Dutch names
last_name: str
full_name: str # first_name + tussenvoegsels + last_name
email: EmailStr
language: LanguageOption
# TODO: phone number
address: Address | None = None
@model_validator(mode="after")
def generate_full_name(self) -> Self:
full_name = self.first_name
if self.tussenvoegsels:
full_name += " " + self.tussenvoegsels
full_name += " " + self.last_name
self.full_name = full_name
return self