import uuid from datetime import datetime from pydantic import BaseModel, EmailStr, field_validator class UserBase(BaseModel): email: EmailStr full_name: str class UserCreate(UserBase): password: str @field_validator("password") @classmethod def password_min_length(cls, v: str) -> str: if len(v) < 8: raise ValueError("Das Passwort muss mindestens 8 Zeichen lang sein.") return v class UserUpdate(BaseModel): full_name: str | None = None email: EmailStr | None = None password: str | None = None is_active: bool | None = None @field_validator("password") @classmethod def password_min_length(cls, v: str | None) -> str | None: if v is not None and len(v) < 8: raise ValueError("Das Passwort muss mindestens 8 Zeichen lang sein.") return v class UserRead(UserBase): model_config = {"from_attributes": True} id: uuid.UUID is_active: bool is_superadmin: bool created_at: datetime updated_at: datetime