37 lines
1001 B
Python
37 lines
1001 B
Python
import uuid
|
|
|
|
from brewman.schemas import to_camel
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
from .permission import PermissionItem
|
|
|
|
|
|
class RoleIn(BaseModel):
|
|
name: str = Field(..., min_length=1)
|
|
permissions: list[PermissionItem]
|
|
model_config = ConfigDict(str_strip_whitespace=True, populate_by_name=True)
|
|
|
|
|
|
class Role(RoleIn):
|
|
id_: uuid.UUID
|
|
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
|
|
|
|
|
|
class RoleList(BaseModel):
|
|
id_: uuid.UUID
|
|
name: str
|
|
permissions: list[str]
|
|
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
|
|
|
|
|
|
class RoleItem(BaseModel):
|
|
id_: uuid.UUID
|
|
name: str
|
|
enabled: bool
|
|
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
|
|
|
|
|
|
class RoleBlank(RoleIn):
|
|
name: str
|
|
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
|