Simplified Group/Entity Lists/Ref to simple type aliases
This commit is contained in:
parent
5d40e4f358
commit
456bdbf63a
@ -17,11 +17,12 @@ class CommitteeModel(BaseModel):
|
|||||||
full_name_NL: str
|
full_name_NL: str
|
||||||
description_EN: str
|
description_EN: str
|
||||||
description_NL: str
|
description_NL: str
|
||||||
|
committee_type: CommitteeType
|
||||||
|
|
||||||
active: bool = True
|
active: bool = True
|
||||||
|
|
||||||
editions: GroupList
|
editions: GroupList
|
||||||
current_edition: GroupRef
|
current_edition: GroupRef | None
|
||||||
|
|
||||||
@model_validator(mode='after')
|
@model_validator(mode='after')
|
||||||
def current_edition_in_editions(self) -> Self:
|
def current_edition_in_editions(self) -> Self:
|
||||||
@ -32,6 +33,8 @@ class CommitteeModel(BaseModel):
|
|||||||
raise ValueError("Current edition must be in list of editions")
|
raise ValueError("Current edition must be in list of editions")
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
# TODO... maybe require that an active board always has a current_edition that is non-empty?
|
||||||
|
|
||||||
class CommitteeEditionModel(BaseModel):
|
class CommitteeEditionModel(BaseModel):
|
||||||
members: EntityList
|
members: EntityList
|
||||||
functions: dict[UUID4, str]
|
functions: dict[UUID4, str]
|
||||||
|
|||||||
@ -1,33 +1,9 @@
|
|||||||
from dataclasses import dataclass, field
|
from typing import Annotated
|
||||||
|
from pydantic import RootModel, Field, UUID4
|
||||||
|
|
||||||
from pydantic import UUID4
|
|
||||||
|
|
||||||
'''
|
EntityList = Annotated[list[UUID4], Field(default_factory=list)]
|
||||||
(Entity/Group)(List/Ref) represents a list / single instance of entities / groups.
|
GroupList = Annotated[list[UUID4], Field(default_factory=list)]
|
||||||
This is for fiber to know in which Mongo collection to look.
|
|
||||||
|
|
||||||
the __iter__ function allows us to do things as
|
EntityRef = UUID4
|
||||||
"for member in edition.members"
|
GroupRef = UUID4
|
||||||
'''
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class EntityList:
|
|
||||||
uuids: list[UUID4] = field(default_factory=list)
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
return iter(self.uuids)
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class GroupList:
|
|
||||||
uuids: list[UUID4] = field(default_factory=list)
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
return iter(self.uuids)
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class EntityRef:
|
|
||||||
uuids: UUID4
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class GroupRef:
|
|
||||||
uuids: UUID4
|
|
||||||
Loading…
x
Reference in New Issue
Block a user