"""Pydantic-Schemas für Anfragen/Antworten (Phase 0: Auth, Benutzer, Einstellungen).""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from .models import Role class UserOut(BaseModel): model_config = ConfigDict(from_attributes=True) id: int username: str role: Role display_name: str | None = None is_active: bool must_change_password: bool created_at: datetime class UserCreate(BaseModel): username: str = Field(min_length=1, max_length=64) password: str = Field(min_length=1, max_length=1024) role: Role = Role.user display_name: str | None = Field(default=None, max_length=120) class UserUpdate(BaseModel): password: str | None = Field(default=None, min_length=1, max_length=1024) role: Role | None = None display_name: str | None = Field(default=None, max_length=120) is_active: bool | None = None class PasswordChange(BaseModel): current_password: str = Field(min_length=1, max_length=1024) new_password: str = Field(min_length=1, max_length=1024) class SettingOut(BaseModel): key: str value: str | None = None