26 lines
588 B
Python
26 lines
588 B
Python
from datetime import datetime
|
|
from typing import Optional, Dict, Any, List
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
class JobBase(BaseModel):
|
|
job_type: str
|
|
|
|
class JobCreate(JobBase):
|
|
input_data: Dict[str, Any]
|
|
|
|
class Job(JobBase):
|
|
id: int
|
|
user_id: int
|
|
status: str
|
|
output_path: Optional[str] = None
|
|
download_url: Optional[str] = None
|
|
error_message: Optional[str] = None
|
|
created_at: datetime
|
|
completed_at: Optional[datetime] = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
class JobList(BaseModel):
|
|
total: int
|
|
jobs: List[Job]
|