from typing import Annotated from pydantic import Field from .person import PersonModel from .enums import HonoraryStatus, Membership, Gender class FormerMemberModel(PersonModel): title: str | None = None gender: Gender | None = None honorary_status: HonoraryStatus | None = None # TODO: picture, study_start (year, month?), study_end # company emails? class AlumnModel(FormerMemberModel): membership: Annotated[Membership, Field(pattern="alumn")] graduated: bool = False receive_spam_mail: bool = True class ExternalModel(PersonModel): membership: Annotated[Membership, Field(pattern="extern")] # TODO... payment??? # TODO require login info??