38 lines
693 B
Python
38 lines
693 B
Python
"""Response models for API endpoints."""
|
|
|
|
from typing import Optional, List
|
|
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class TaskStatus(str, Enum):
|
|
PENDING = "pending"
|
|
PROCESSING = "processing"
|
|
DONE = "done"
|
|
ERROR = "error"
|
|
|
|
|
|
class TrackInfo(BaseModel):
|
|
filename: str
|
|
size: int # bytes
|
|
|
|
|
|
class UploadResponse(BaseModel):
|
|
task_id: str
|
|
filename: str
|
|
size: int
|
|
|
|
|
|
class SplitResponse(BaseModel):
|
|
task_id: str
|
|
status: TaskStatus
|
|
|
|
|
|
class StatusResponse(BaseModel):
|
|
task_id: str
|
|
status: TaskStatus
|
|
progress: int = Field(0, ge=0, le=100)
|
|
message: str = ""
|
|
error: Optional[str] = None
|
|
tracks: List[TrackInfo] = [] |