Changes committed

This commit is contained in:
2026-06-01 21:49:53 +05:30
parent 8537c653c1
commit 3163bb213e
387 changed files with 21940 additions and 107 deletions

View File

@@ -0,0 +1,69 @@
from __future__ import annotations
import uuid
from datetime import datetime
from pydantic import EmailStr, Field
from app.schemas.common import BaseSchema
class UserBase(BaseSchema):
"""Base user fields."""
username: str = Field(..., min_length=3, max_length=150)
email: EmailStr
full_name: str | None = Field(None, max_length=255)
class UserCreate(UserBase):
"""User creation payload."""
password: str = Field(..., min_length=8, max_length=128)
is_active: bool = True
is_superuser: bool = False
role_names: list[str] = Field(default_factory=list)
class UserUpdate(BaseSchema):
"""User update payload."""
email: EmailStr | None = None
full_name: str | None = None
is_active: bool | None = None
is_superuser: bool | None = None
role_names: list[str] | None = None
class RoleResponse(BaseSchema):
"""Role response."""
id: uuid.UUID
name: str
description: str | None
class UserResponse(BaseSchema):
"""Full user response."""
id: uuid.UUID
username: str
email: str
full_name: str | None
is_active: bool
is_superuser: bool
roles: list[RoleResponse] = Field(default_factory=list)
created_at: datetime
updated_at: datetime
last_login: datetime | None
class UserListResponse(BaseSchema):
"""Minimal user response for lists."""
id: uuid.UUID
username: str
email: str
full_name: str | None
is_active: bool
created_at: datetime