SizzleReelGenerator / models.py
amagastya's picture
Upload models.py
bb36e7e verified
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")