25 lines
695 B
Python
25 lines
695 B
Python
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??
|