Files
IPSExtractor/server/app/schemas/batch.py
T

55 lines
1.3 KiB
Python

from pydantic import BaseModel
from typing import Optional, List, Dict
from datetime import datetime
from enum import Enum
class BatchStatus(str, Enum):
PENDING = "pending"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
class BatchBase(BaseModel):
root_path: str
total_radicados: int
csv_output_path: Optional[str] = None
hostname: Optional[str] = None
username: Optional[str] = None
config: Optional[Dict] = None
class BatchCreate(BatchBase):
pass
class BatchUpdate(BaseModel):
status: Optional[BatchStatus] = None
current_radicado_index: Optional[int] = None
success_count: Optional[int] = None
error_count: Optional[int] = None
total_tokens: Optional[int] = None
total_cost_usd: Optional[float] = None
last_error: Optional[str] = None
current_phase: Optional[str] = None
current_radicado: Optional[str] = None
class BatchRead(BatchBase):
id: str
status: BatchStatus
current_radicado_index: int = 0
success_count: int = 0
error_count: int = 0
total_tokens: int = 0
total_cost_usd: float = 0.0
last_error: Optional[str] = None
current_phase: Optional[str] = None
current_radicado: Optional[str] = None
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True