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