chore: first commit

This commit is contained in:
Daniil
2026-02-17 23:33:08 +03:00
parent a25bf623ea
commit 937e58859a
3 changed files with 411 additions and 254 deletions
+34 -10
View File
@@ -8,20 +8,14 @@ from datetime import datetime
from typing import Literal
from uuid import UUID
from pydantic import Field
from pydantic import Field, model_validator
from cpv3.common.schemas import Schema
from cpv3.modules.jobs.schemas import JobStatusEnum, JobTypeEnum
TaskTypeEnum = Literal[
"MEDIA_PROBE",
"SILENCE_REMOVE",
"MEDIA_CONVERT",
"TRANSCRIPTION_GENERATE",
"CAPTIONS_GENERATE",
]
TaskStatusEnum = Literal["PENDING", "RUNNING", "FAILED", "CANCELLED", "DONE"]
TaskTypeEnum = JobTypeEnum
TaskStatusEnum = JobStatusEnum
# --- Request schemas ---
@@ -104,3 +98,33 @@ class TaskStatusResponse(Schema):
output_data: dict | None = None
started_at: datetime | None = None
finished_at: datetime | None = None
class TaskWebhookEvent(Schema):
"""Webhook event payload for task updates."""
status: TaskStatusEnum | None = None
progress_pct: float | None = None
current_message: str | None = None
error_message: str | None = None
output_data: dict | None = None
started_at: datetime | None = None
finished_at: datetime | None = None
@model_validator(mode="after")
def validate_has_update(self) -> "TaskWebhookEvent":
has_update = any(
value is not None
for value in (
self.status,
self.progress_pct,
self.current_message,
self.error_message,
self.output_data,
self.started_at,
self.finished_at,
)
)
if not has_update:
raise ValueError("Webhook event must include at least one update field.")
return self