37 lines
907 B
Python
37 lines
907 B
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class UploadResponse(BaseModel):
|
|
file_id: str
|
|
original_name: str
|
|
file_url: str
|
|
|
|
|
|
class TaskCreateRequest(BaseModel):
|
|
file_id: str = Field(..., description="Uploaded file identifier")
|
|
clip_seconds: Optional[int] = Field(default=8, ge=1, le=60)
|
|
transcode_mp4: bool = True
|
|
generate_cover: bool = True
|
|
generate_hls: bool = True
|
|
watermark_text: Optional[str] = Field(default="VPlatform Demo", max_length=32)
|
|
|
|
|
|
class TaskResult(BaseModel):
|
|
mp4_url: Optional[str] = None
|
|
cover_url: Optional[str] = None
|
|
hls_url: Optional[str] = None
|
|
log: List[str] = Field(default_factory=list)
|
|
|
|
|
|
class TaskResponse(BaseModel):
|
|
task_id: str
|
|
status: str
|
|
file_id: str
|
|
created_at: str
|
|
updated_at: str
|
|
options: TaskCreateRequest
|
|
result: TaskResult
|
|
error: Optional[str] = None
|