ilyass yani
Deploiement backend dans HF Spaces
9df97a2
Raw
History Blame
1.83 kB
from pydantic import BaseModel
from typing import List, Optional
from enum import Enum
class UserRoleFilter(str, Enum):
admin = "admin"
recruiter = "recruiter"
candidate = "candidate"
class ModerationStatusEnum(str, Enum):
pending = "pending"
approved = "approved"
rejected = "rejected"
# ── User admin schemas ────────────────────────────────────────────────────────
class AdminUserResponse(BaseModel):
id: int
email: str
full_name: str
role: str
is_active: bool
created_at: str
class Config:
from_attributes = True
class PaginatedUsersResponse(BaseModel):
total: int
items: List[AdminUserResponse]
class UserStatusUpdate(BaseModel):
is_active: bool
# ── Job admin schemas ─────────────────────────────────────────────────────────
class AdminJobResponse(BaseModel):
id: int
title: str
description: Optional[str]
moderation_status: str
recruiter_id: int
recruiter_email: Optional[str]
created_at: str
class Config:
from_attributes = True
class PaginatedJobsResponse(BaseModel):
total: int
items: List[AdminJobResponse]
class JobModerationUpdate(BaseModel):
moderation_status: ModerationStatusEnum
# ── Stats schema ──────────────────────────────────────────────────────────────
class AdminStatsResponse(BaseModel):
total_candidates: int
total_recruiters: int
total_active_jobs: int
total_matchings: int