Spaces:
Running
Running
| """ | |
| Admin Schemas — Request/response models for admin operations. | |
| """ | |
| from datetime import datetime | |
| from typing import Optional | |
| from pydantic import BaseModel, Field | |
| class AdminDashboardStats(BaseModel): | |
| """Dashboard statistics for the admin panel.""" | |
| total_users: int = 0 | |
| active_users: int = 0 | |
| total_projects: int = 0 | |
| total_models: int = 0 | |
| total_datasets: int = 0 | |
| total_experiments: int = 0 | |
| total_training_jobs: int = 0 | |
| pending_jobs: int = 0 | |
| running_jobs: int = 0 | |
| total_api_keys: int = 0 | |
| storage_used_bytes: int = 0 | |
| class AdminUserListItem(BaseModel): | |
| """User summary for admin user list.""" | |
| id: str | |
| email: str | |
| full_name: Optional[str] = None | |
| company_name: Optional[str] = None | |
| is_active: bool | |
| is_verified: bool | |
| roles: list[str] = [] | |
| login_count: int = 0 | |
| last_login_at: Optional[datetime] = None | |
| created_at: Optional[datetime] = None | |
| model_config = {"from_attributes": True} | |
| class AdminUserUpdate(BaseModel): | |
| """Admin-level user update.""" | |
| full_name: Optional[str] = None | |
| company_name: Optional[str] = None | |
| is_active: Optional[bool] = None | |
| is_verified: Optional[bool] = None | |
| roles: Optional[list[str]] = None | |
| class AuditLogEntry(BaseModel): | |
| """Audit log entry for admin view.""" | |
| id: str | |
| user_id: Optional[str] = None | |
| action: str | |
| resource_type: str | |
| resource_id: Optional[str] = None | |
| ip_address: Optional[str] = None | |
| details: dict = {} | |
| created_at: Optional[datetime] = None | |
| model_config = {"from_attributes": True} | |
| class RoleInfo(BaseModel): | |
| """Role information.""" | |
| id: str | |
| name: str | |
| display_name: str | |
| description: Optional[str] = None | |
| hierarchy_level: int | |
| is_system: bool | |
| model_config = {"from_attributes": True} | |