diff --git a/src/fiber_package/groups/committees/committee.py b/src/fiber_package/groups/committees/committee.py index a236cb4..7d9786f 100644 --- a/src/fiber_package/groups/committees/committee.py +++ b/src/fiber_package/groups/committees/committee.py @@ -17,11 +17,12 @@ class CommitteeModel(BaseModel): full_name_NL: str description_EN: str description_NL: str + committee_type: CommitteeType active: bool = True editions: GroupList - current_edition: GroupRef + current_edition: GroupRef | None @model_validator(mode='after') def current_edition_in_editions(self) -> Self: @@ -32,6 +33,8 @@ class CommitteeModel(BaseModel): raise ValueError("Current edition must be in list of editions") return self + # TODO... maybe require that an active board always has a current_edition that is non-empty? + class CommitteeEditionModel(BaseModel): members: EntityList functions: dict[UUID4, str] diff --git a/src/fiber_package/util.py b/src/fiber_package/util.py index a851a38..2c6c325 100644 --- a/src/fiber_package/util.py +++ b/src/fiber_package/util.py @@ -1,33 +1,9 @@ -from dataclasses import dataclass, field +from typing import Annotated +from pydantic import RootModel, Field, UUID4 -from pydantic import UUID4 -''' -(Entity/Group)(List/Ref) represents a list / single instance of entities / groups. -This is for fiber to know in which Mongo collection to look. +EntityList = Annotated[list[UUID4], Field(default_factory=list)] +GroupList = Annotated[list[UUID4], Field(default_factory=list)] -the __iter__ function allows us to do things as - "for member in edition.members" -''' - -@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 \ No newline at end of file +EntityRef = UUID4 +GroupRef = UUID4 \ No newline at end of file