56 行
974 B
Python

from __future__ import annotations
from pydantic import BaseModel
class LoginRequest(BaseModel):
username: str
password: str
class LoginResponse(BaseModel):
access_token: str
token_type: str = "bearer"
class UserInfo(BaseModel):
id: int
username: str
display_name: str | None
role: str
class Config:
from_attributes = True
class ChangePasswordRequest(BaseModel):
old_password: str
new_password: str
class CreateUserRequest(BaseModel):
username: str
password: str
display_name: str | None = None
role: str = "editor"
class UpdateUserRequest(BaseModel):
display_name: str | None = None
role: str | None = None
is_active: bool | None = None
class ResetPasswordRequest(BaseModel):
new_password: str
class UserListResponse(BaseModel):
id: int
username: str
display_name: str | None
role: str
is_active: bool
class Config:
from_attributes = True