Files
gartenmanager/backend/app/schemas/user.py

45 lines
1.0 KiB
Python
Raw Normal View History

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