File size: 1,622 Bytes
bb36e7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from typing import Any, Dict, List

from pydantic import BaseModel, Field


class HeroResearchOutput(BaseModel):
    hero_user: str = Field(description="The identified hero user who will benefit most from the app.")
    hero_use_case: str = Field(description="The primary use case explaining why the hero user would use the app and what they aim to achieve.")
    hero_journey: List[str] = Field(description="A list of steps outlining the journey the hero user will take within the app.")
    # app_name: str = Field(description="Given App Name")
    # app_idea: str = Field(description="Given App Idea")


class FeatureMapping(BaseModel):
    step: str = Field(description="A specific step in the hero user's journey.")
    features: List[Dict[str, Any]] = Field(description="A list of features from the buildcard that correspond to the journey step.")

class FeatureIntegrationOutput(BaseModel):
    journey_features_mapping: List[FeatureMapping]

class ContentPlanStep(BaseModel):
    step_description: str
    features: List[Dict[str, Any]]

class ContentPlanOutput(BaseModel):
    content_plan: List[ContentPlanStep]

class ScriptStep(BaseModel):
    step_description: str
    narrator: str
    action: str
    features: List[Dict[str, Any]]

class ScriptOutput(BaseModel):
    sizzle_reel_script: List[ScriptStep]

class VideoGenerationOutput(BaseModel):
    video_path: str = Field(description="Path to the generated sizzle reel video")
    video_duration: float = Field(description="Duration of the generated video in seconds")
    app_name: str = Field(description="Name of the app for which video was generated")