Files
ai-agent-admin/backend/app/schemas/core.py
T
2026-06-08 15:12:03 +08:00

94 lines
1.7 KiB
Python

from datetime import datetime
from pydantic import BaseModel, ConfigDict
class LoginIn(BaseModel):
username: str
password: str
class TokenOut(BaseModel):
access_token: str
token_type: str = "bearer"
class UserBase(BaseModel):
email: str
username: str
nickname: str = ""
status: str = "enabled"
is_superuser: bool = False
class UserCreate(UserBase):
password: str = "123456"
class UserUpdate(BaseModel):
email: str | None = None
username: str | None = None
nickname: str | None = None
status: str | None = None
is_superuser: bool | None = None
password: str | None = None
class UserOut(UserBase):
id: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class RoleBase(BaseModel):
name: str
code: str
description: str = ""
status: str = "enabled"
class RoleOut(RoleBase):
id: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class PermissionBase(BaseModel):
name: str
code: str
resource: str = ""
action: str = ""
class PermissionOut(PermissionBase):
id: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class MenuBase(BaseModel):
parent_id: str | None = None
title: str
path: str = ""
icon: str = ""
permission_code: str = ""
visible: bool = True
class MenuOut(MenuBase):
id: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class AnnouncementBase(BaseModel):
title: str
content: str = ""
status: str = "draft"
class AnnouncementOut(AnnouncementBase):
id: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)