from pydantic import UUID4, BaseModel, ConfigDict from contributor.api.schemas.schema_examples import with_example class ParticipationRoleCategoryKey(BaseModel): uuid: UUID4 class ParticipationRoleKey(BaseModel): uuid: UUID4 class ParticipationRoleCategory(ParticipationRoleCategoryKey): model_config = ConfigDict( title="A category of participation roles.", json_schema_extra=with_example("participation_role_category"), ) name: str class ParticipationRole(ParticipationRoleKey): model_config = ConfigDict( title="A participation role.", json_schema_extra=with_example("participation_role"), ) uuid: UUID4 apple_role_name: str | None = None category: ParticipationRoleCategory ddex_role_name: str | None = None name: str class ParticipationRolesByCategory(BaseModel): category: ParticipationRoleCategory roles: list[ParticipationRole] class ParticipationRolesByCatagoryDataloaderRequest(BaseModel): model_config = ConfigDict( title="Request for bulk loading participation roles by category.", json_schema_extra=with_example( "participation_roles_by_category_dataloader_request" ), ) categories: list[ParticipationRoleCategoryKey]