"""User schemas.""" from __future__ import annotations from pydantic import BaseModel, EmailStr, Field class UserCreate(BaseModel): email: EmailStr = Field(..., examples=["user@leocrm.local"]) name: str = Field(..., min_length=1, max_length=200, examples=["John Doe"]) password: str = Field(..., min_length=8, examples=["secure-password"]) role: str = Field(default="viewer", examples=["viewer"]) role_id: str | None = Field(default=None, description="UUID of a custom Role", examples=["550e8400-e29b-41d4-a716-446655440000"]) is_active: bool = True class UserUpdate(BaseModel): name: str | None = Field(None, min_length=1, max_length=200) role: str | None = None role_id: str | None = Field(default=None, description="UUID of a custom Role; send null to clear") is_active: bool | None = None class UserResponse(BaseModel): id: str email: str name: str role: str role_id: str | None = None is_active: bool tenant_id: str class PaginatedUsers(BaseModel): items: list[UserResponse] total: int page: int page_size: int