from datetime import datetime from enum import Enum from typing import Optional from pydantic import BaseModel, Field class JobStatus(str, Enum): PENDING = "pending" QUEUED = "queued" PREPROCESSING = "preprocessing" TRAINING = "training" COMPLETED = "completed" EVALUATING = "evaluating" EVALUATION_DONE = "evaluation_done" FAILED = "failed" CANCELLED = "cancelled" class ModelType(str, Enum): TEXT = "text" VISION = "vision" MULTIMODAL = "multimodal" class PeftMethod(str, Enum): LORA = "lora" QLORA = "qlora" IA3 = "ia3" ADALORA = "adalora" PREFIX_TUNING = "prefix_tuning" class PaginationParams(BaseModel): page: int = Field(default=1, ge=1) page_size: int = Field(default=20, ge=1, le=100) class PaginatedResponse[T](BaseModel): items: list[T] total: int page: int page_size: int class ErrorResponse(BaseModel): detail: str code: str = "error"