from typing import List, Dict

# Character Options
CHARACTER_ROLES: Dict[str, List[str]] = {
    "zh": ["主角", "配角", "反派", "龙套", "群演"],
    "en": ["Leading Role", "Supporting Role", "Villain", "Minor Role", "Extra"]
}

CHARACTER_GENDERS: Dict[str, List[str]] = {
    "zh": ["男", "女", "未知"],
    "en": ["Male", "Female", "Unknown"]
}

# Storyboard Options
# Common shot types in filmmaking
SHOT_TYPES: Dict[str, List[str]] = {
    "en": [
        "Extreme Long Shot (ELS)",
        "Long Shot (LS)",
        "Full Shot (FS)",
        "Medium Long Shot (MLS)",
        "Medium Shot (MS)",
        "Medium Close-Up (MCU)",
        "Close-Up (CU)",
        "Extreme Close-Up (ECU)",
        "Establishing Shot",
        "Point of View (POV)",
        "Over the Shoulder (OTS)"
    ],
    "zh": [
        "大远景 (ELS)",
        "远景 (LS)",
        "全景 (FS)",
        "中远景 (MLS)",
        "中景 (MS)",
        "中特写 (MCU)",
        "特写 (CU)",
        "大特写 (ECU)",
        "建立镜头",
        "主观镜头 (POV)",
        "过肩镜头 (OTS)"
    ]
}

# Common camera movements
CAMERA_MOVEMENTS: Dict[str, List[str]] = {
    "en": [
        "Static",
        "Pan Left",
        "Pan Right",
        "Tilt Up",
        "Tilt Down",
        "Zoom In",
        "Zoom Out",
        "Dolly In",
        "Dolly Out",
        "Truck Left",
        "Truck Right",
        "Pedestal Up",
        "Pedestal Down",
        "Tracking",
        "Arc",
        "Handheld",
        "Crane/Boom",
        "Drone/Aerial",
        "Rack Focus"
    ],
    "zh": [
        "固定镜头 (Static)",
        "左摇 (Pan Left)",
        "右摇 (Pan Right)",
        "上仰 (Tilt Up)",
        "下俯 (Tilt Down)",
        "推镜头 (Zoom In)",
        "拉镜头 (Zoom Out)",
        "前移 (Dolly In)",
        "后移 (Dolly Out)",
        "左移 (Truck Left)",
        "右移 (Truck Right)",
        "升镜头 (Pedestal Up)",
        "降镜头 (Pedestal Down)",
        "跟随 (Tracking)",
        "环绕 (Arc)",
        "手持 (Handheld)",
        "摇臂 (Crane/Boom)",
        "航拍 (Drone/Aerial)",
        "变焦 (Rack Focus)"
    ]
}

# Common transitions
TRANSITIONS: Dict[str, List[str]] = {
    "en": [
        "Cut",
        "Dissolve",
        "Fade In",
        "Fade Out",
        "Wipe",
        "Iris In",
        "Iris Out",
        "Match Cut",
        "Jump Cut",
        "Crossfade"
    ],
    "zh": [
        "切 (Cut)",
        "叠化 (Dissolve)",
        "淡入 (Fade In)",
        "淡出 (Fade Out)",
        "划像 (Wipe)",
        "圈入 (Iris In)",
        "圈出 (Iris Out)",
        "匹配剪辑 (Match Cut)",
        "跳接 (Jump Cut)",
        "交叉淡入淡出 (Crossfade)"
    ]
}
