Files
ai-ticket-platform/backend/apps/accounts/schemas.py
2026-07-01 14:07:39 +08:00

131 lines
2.3 KiB
Python

from datetime import datetime
from ninja import Schema
class LoginIn(Schema):
username: str
password: str
class RoleOut(Schema):
id: int
name: str
class UserGroupOut(Schema):
id: int
name: str
code: str
description: str = ""
is_active: bool = True
created_at: datetime | None = None
updated_at: datetime | None = None
class MenuOut(Schema):
id: int
code: str
title: str
path: str
icon: str
permission_code: str
is_visible: bool
is_enabled: bool
children: list["MenuOut"] = []
class CurrentUserOut(Schema):
id: int
username: str
display_name: str
email: str
is_superuser: bool
roles: list[RoleOut]
user_groups: list[UserGroupOut]
permissions: list[str]
menus: list[MenuOut]
class BasicUserOut(Schema):
id: int
username: str
display_name: str
email: str
is_active: bool
is_staff: bool
is_superuser: bool
roles: list[RoleOut] = []
user_groups: list[UserGroupOut] = []
class UserCreateIn(Schema):
username: str
display_name: str = ""
email: str = ""
password: str
is_active: bool = True
class UserUpdateIn(Schema):
display_name: str | None = None
email: str | None = None
is_active: bool | None = None
class PasswordResetIn(Schema):
password: str
class IdsIn(Schema):
user_ids: list[int] = []
role_ids: list[int] = []
class UserGroupCreateIn(Schema):
name: str
code: str
description: str = ""
is_active: bool = True
class UserGroupUpdateIn(Schema):
name: str | None = None
description: str | None = None
is_active: bool | None = None
class PermissionOut(Schema):
codename: str
name: str
module: str
class RoleDetailOut(Schema):
id: int
name: str
permission_codes: list[str]
class RoleCreateIn(Schema):
name: str
permission_codes: list[str] = []
class RoleUpdateIn(Schema):
name: str | None = None
class PermissionCodesIn(Schema):
permission_codes: list[str]
class MenuUpdateIn(Schema):
title: str | None = None
path: str | None = None
icon: str | None = None
permission_code: str | None = None
is_visible: bool | None = None
is_enabled: bool | None = None
sort_order: int | None = None