import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict from rehearsalhub.schemas.member import MemberRead class BandMemberRead(BaseModel): model_config = ConfigDict(from_attributes=True) member: MemberRead role: str instrument: str | None = None joined_at: datetime class BandCreate(BaseModel): name: str slug: str genre_tags: list[str] = [] nc_base_path: str | None = None # e.g. "Bands/MyBand/" — defaults to "bands/{slug}/" class BandUpdate(BaseModel): nc_folder_path: str | None = None # update the Nextcloud base folder for scans class BandRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID name: str slug: str genre_tags: list[str] nc_folder_path: str | None = None created_at: datetime updated_at: datetime class BandReadWithMembers(BandRead): memberships: list[BandMemberRead] = []