from typing import List, Optional from pydantic import Field from app.models.domain.roles import Role from app.models.schemas.rwschema import RWSchema class RoleBase(RWSchema): name: str = Field(..., min_length=2, max_length=64) description: Optional[str] = "" permissions: List[str] = Field(default_factory=list) class RoleInCreate(RoleBase): pass class RoleInUpdate(RWSchema): name: Optional[str] = Field(default=None, min_length=2, max_length=64) description: Optional[str] = None permissions: Optional[List[str]] = None class RoleInResponse(RWSchema): role: Role class ListOfRolesInResponse(RWSchema): roles: List[Role]