Files
hot_comment_radar/app/schemas.py
T

41 lines
1.1 KiB
Python

from datetime import datetime
from typing import Literal
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
class CreateTaskRequest(BaseModel):
platform: Literal["xiaohongshu", "douyin"]
hotspot_limit: int = Field(default=5, ge=1, le=10)
item_limit_per_hotspot: int = Field(
default=5,
ge=1,
le=10,
validation_alias=AliasChoices("item_limit_per_hotspot", "item_limit"),
)
comment_limit_per_item: int = Field(default=50, ge=10, le=100)
class TaskResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
task_id: str = Field(validation_alias="id", serialization_alias="task_id")
platform: str
status: str
analysis_status: str
analysis_success_rate: float
hotspot_limit: int
item_limit_per_hotspot: int
comment_limit_per_item: int
total_items_count: int
processed_items_count: int
successful_items_count: int
failed_items_count: int
error_message: str | None
created_at: datetime
class CreateTaskResponse(BaseModel):
task_id: str
status: str