later process

This commit is contained in:
2026-10-29 08:48:49 +08:00
parent 03e7987c7c
commit 031f3c6f21
9 changed files with 541 additions and 85 deletions

View File

@@ -93,6 +93,34 @@ class SentenceTextUpdate(BaseModel):
language: Optional[str] = Field(default=None, max_length=32)
class AdminSentenceBatchItem(BaseModel):
model_config = ConfigDict(extra="forbid")
start_ms: int = Field(ge=0)
end_ms: int = Field(gt=0)
text: str = Field(min_length=1, max_length=4000)
language: Optional[str] = Field(default=None, max_length=32)
reference_speech_duration_ms: int = Field(gt=0)
source_start_ms: Optional[int] = Field(default=None, ge=0)
source_end_ms: Optional[int] = Field(default=None, gt=0)
@model_validator(mode="after")
def validate_range(self):
if self.end_ms <= self.start_ms:
raise ValueError("end_ms must be greater than start_ms")
if (self.source_start_ms is None) != (self.source_end_ms is None):
raise ValueError("source_start_ms and source_end_ms must be set together")
elif self.source_start_ms is not None and self.source_end_ms <= self.source_start_ms:
raise ValueError("source end_ms must be greater than source start_ms")
return self
class AdminSentenceBatchUpdate(BaseModel):
model_config = ConfigDict(extra="forbid")
sentences: List[AdminSentenceBatchItem] = Field(min_length=1, max_length=10000)
class CourseTitleUpdate(BaseModel):
model_config = ConfigDict(extra="forbid")