"""Schemata für Anmeldung und Benutzerkonto.""" from datetime import datetime from pydantic import Field from app.schemas.common import ApiModel, InputModel class LoginRequest(InputModel): username: str = Field(min_length=1, max_length=120, examples=["admin"]) password: str = Field(min_length=1, max_length=256) class ChangePasswordRequest(InputModel): current_password: str = Field(min_length=1, max_length=256) new_password: str = Field(min_length=10, max_length=256) class UserOut(ApiModel): """Der angemeldete Benutzer.""" id: int username: str email: str | None = None must_change_password: bool = Field( description="Solange true, sind außer /api/me und /api/auth/* alle Routen gesperrt." ) last_login_at: datetime | None = None