31 lines
672 B
Python
31 lines
672 B
Python
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]
|