from pydantic import BaseModel, Field, ConfigDict
from typing import List, Optional

class CinematographyShot(BaseModel):
    """Cinematography enrichment for a shot"""
    model_config = ConfigDict(extra='allow')
    
    shot_id: int
    lighting: str = Field(description="光影设定 (e.g. 强反差, 自然光)")
    focus: Optional[str] = Field(default=None, description="焦点控制")
    color_style: Optional[str] = Field(default=None, description="色彩风格")
    merge_image_prompt: str = Field(description="完整的AI生图提示词")
    video_prompt: str = Field(description="用于视频生成的动态提示词")


class CinematographyList(BaseModel):
    model_config = ConfigDict(extra='allow')
    
    shots: List[CinematographyShot]
