from typing import List, Dict import dataclasses @dataclasses.dataclass class Composition: prompt: str shot_type: str seed: int = None image: str = "" @dataclasses.dataclass class Character: name: str age: str gender: str description: str profile_image: str expressions : List[str] = dataclasses.field(default_factory=list) compositions: List[Composition] = dataclasses.field(default_factory=list) @dataclasses.dataclass(frozen=True) class Location: name: str description: str @dataclasses.dataclass class Frame: description: str narration: str audio_cue_text: str audio_cue_character: str location: str frame_setting: str characters: List[Character] = dataclasses.field(default_factory=list) compositions: List[Composition] = dataclasses.field(default_factory=list) character_expression: Dict[str, str] = dataclasses.field(default_factory=dict) audio_path: str = "" stitch_image: str = "" @dataclasses.dataclass class Scene: description: str frames: List[Frame] = dataclasses.field(default_factory=list) @dataclasses.dataclass class Episode: title: str abstract: str scenes: List[Scene] = dataclasses.field(default_factory=list) thumbnail_image: str = "" thumbnail_image_prompt: str = ""