""" Pydantic models for the user module """ from typing import Optional from pydantic import Field from src.schemas import CustomBaseModel class UserIDMixin(CustomBaseModel): user_id: int = Field(gt=0) class OIDCClaims(CustomBaseModel): exp: int iat: int auth_time: int jti: str iss: str aud: str sub: str typ: str azp: str sid: str acr: str allowed_origins: list[str] realm_access: dict[str, list[str]] resource_access: dict[str, dict[str, list[str]]] scope: str email_verified: bool name: str preferred_username: str given_name: str family_name: str email: str db_id: int class OIDCUser(CustomBaseModel): first_name: str last_name: str email: str oidc_id: str class UserResponse(CustomBaseModel): first_name: str last_name: str email: str organisations: list[Optional[dict[str, str|int]]] groups: Optional[dict[str, list[str]]] = None class OrgResponse(CustomBaseModel): org_id: int name: str class UserDeleteUserRequest(UserIDMixin): pass