Files
Lotty/src/backend/api/v1/users/schemas.py
T

56 lines
1.2 KiB
Python

from typing import ClassVar
from ninja import ModelSchema, Schema
from apps.users.models import User, UserRole
class UserOut(ModelSchema):
class Meta:
model = User
fields: ClassVar[tuple[str, ...]] = (
User.id.field.name,
User.username.field.name,
User.email.field.name,
User.role.field.name,
User.first_name.field.name,
User.last_name.field.name,
User.is_active.field.name,
)
class UserCreateIn(ModelSchema):
role: UserRole = UserRole.VIEWER
class Meta:
model = User
fields: ClassVar[tuple[str, ...]] = (
User.username.field.name,
User.email.field.name,
User.password.field.name,
User.role.field.name,
)
class UserUpdateIn(ModelSchema):
email: str | None = None
first_name: str | None = None
last_name: str | None = None
class Meta:
model = User
fields: ClassVar[tuple[str, ...]] = (
User.email.field.name,
User.first_name.field.name,
User.last_name.field.name,
)
class UserRoleAssignIn(Schema):
role: UserRole
class UserListOut(Schema):
count: int
items: list[UserOut]