from pydantic import BaseModel, Field, HttpUrl
from typing import Optional


class YouTubeUploadTask(BaseModel):
    filename: HttpUrl = Field(..., description="URL of the video file to upload")
    title: str = Field(
        ...,
        min_length=100,
        max_length=500,
        description="A good title for the video",
    )
    description: str = Field(
        ...,
        min_length=100,
        max_length=500,
        description="A brief summary of the video's content",
    )
    category_id: str = "22"  # Default to a generic category, update as needed
    privacy: str = "private"
    tags: str = Field(
        ...,
        min_length=100,
        max_length=500,
        description="Best seo tags for youtube based on the story",
    )
    thumbnail: Optional[str] = Field(
        default=None,
        description="Optional image prompt for video thumbnail",
    )