""" User Schemas - ServiceManagerWeb Pydantic schemas para gestión de usuarios. """ from pydantic import BaseModel, ConfigDict, EmailStr from typing import Optional from datetime import datetime import uuid from app.models.user import UserRole class UserCreate(BaseModel): """Schema para crear usuario. No incluye tenant_id (se asigna automáticamente).""" email: EmailStr first_name: str last_name: str role: UserRole password: str language: str = "es" timezone: str = "UTC" notifications_email: bool = True class UserUpdate(BaseModel): """Schema para actualizar usuario.""" email: Optional[EmailStr] = None first_name: Optional[str] = None last_name: Optional[str] = None role: Optional[UserRole] = None is_active: Optional[bool] = None password: Optional[str] = None language: Optional[str] = None timezone: Optional[str] = None notifications_email: Optional[bool] = None class UserResponse(BaseModel): """Schema de respuesta con todos los campos públicos del usuario.""" id: uuid.UUID tenant_id: uuid.UUID email: EmailStr first_name: str last_name: str avatar_url: Optional[str] = None role: UserRole is_active: bool email_verified: bool last_login: Optional[datetime] = None language: str timezone: str notifications_email: bool totp_enabled: bool created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)