+
    s8i                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ]P                  ! ]
4      tR R ltR R ltR	 R
 ltR# )uF   
Output Formatter – writes the ProductionPlan as Markdown and JSON.
)annotationsN)Path)ProductionPlanc                   V ^8  d   QhRR/# )   returnstr )formats   "M/home/gabslocked/Desktop/Projetos/Images/video_automation/output_formatter.py__annotate__r      s     ' ' '    c                :   RP                  . RNV P                   NRNV P                   NRNV P                   NRNV P                   NRNV P
                   NRNV P                   NRNV P                   NR	NV P                   NR
NV P                   NRNV P                   NRNV P                   NRNV P                   NRNV P                   NRNV P                   NRNV P                   NRNV P                    NRNV P"                  ;'       g    R NRN4      # )z6Render a single ProductionScene as a Markdown section. z---

### Frame z | u    – z7

| Field | Value |
|-------|-------|
| **Duration** | zs |
| **Camera Shot** | z |
| **Camera Movement** | z |
| **Composition** | z |
| **Environment** | z |
| **Pose / Action** | z |
| **Visual Focus** | z |
| **Mood** | z |
| **Cut at** | z |
| **Transition** | z5 |

#### Image Prompt (copy to image generator)

```
z7
```

#### Video Prompt (copy to video generator)

```
z.
```

#### TTS Text (copy to ElevenLabs)

```
z
```

**Voice direction:** zN/A
)joinscene_number
time_starttime_endduration_secondscamera_shotcamera_movementcompositionenvironmentpose_actionvisual_focusmood	cut_point
transitionimage_promptvideo_prompttts_textvoice_direction)scenes   &r   _scene_to_markdownr$      s   % %  % 
% "% #("2"2!3% 49% :?8H%I% (()%*% &&'%(% ../%0% &&'%(% &&'%(% (()%*% (()%*% jj\%%  %!%  $$%!% &!%*  +%*+%6  7%67%B  C%BC%H ++44u5I%H6I% %r   c               $    V ^8  d   QhRRRRRR/# r   planr   
output_dirz
str | Pathr   r   r	   )r
   s   "r   r   r   :   s!     & & &J &4 &r   c                   \        V4      pVP                  RRR7       VR,          p\        V P                  \	        V P
                  ^<,          R4      ,          4      pRRRV P                   2RV P                   2R	V P                   R
V P
                   R2RV P                   2RV 2RV P                   2RV P                   2RV P                  P                   R
V P                  P                   R2RV P                  P                   2RR.pV P                   F  pVP!                  \#        V4      4       K  	  VP!                  R4       V P$                   F  pVP!                  V4       K  	  VP!                  R4       VP'                  RP)                  V4      RR7       \*        P-                  RV4       V# )z-Write the production plan as a Markdown file.Tparentsexist_okzproduction_plan.mdg?z# Video Production Planr   z**Title:** z**Summary:** z**Total Duration:** z (zs)z**Total Frames:** z**Frames/Minute:** ~z**Target Platform:** z**Character Template:** z**Resolution:** )z	**FPS:** z	## Framesz
## Assembly Instructions
z1
---
*Generated by AI Video Production Pipeline*
r   utf-8encodingzMarkdown saved: %s)r   mkdirroundtotal_scenesmaxtotal_duration_secondstitlesummarytotal_duration_formattedtarget_platformcharacter_template_nameexport_settings
resolutionaspect_ratiofpsscenesappendr$   assembly_instructions
write_textr   loggerinfo)r'   r(   md_pathfpmlinesr#   instructions   &&     r   save_markdownrI   :   s   j!JTD1//G
C ; ;b @#FFC "

djj\"
~&
t<<= >''(	,
T../0
se$
 4 456
"4#?#?"@A
4//::; <  --.a	1
D((,,-.
E$ './  
LL/011[! 2 
LLGHtyy'':
KK$g.Nr   c               $    V ^8  d   QhRRRRRR/# r&   r	   )r
   s   "r   r   r   c   s!      N 
 t r   c                    \        V4      pVP                  RRR7       VR,          pVP                  \        P                  ! V P                  4       ^RR7      RR7       \        P                  RV4       V# )	z)Write the production plan as a JSON file.Tr*   zproduction_plan.jsonF)indentensure_asciir.   r/   zJSON saved: %s)r   r1   rB   jsondumps
model_dumprC   rD   )r'   r(   	json_paths   && r   	save_jsonrR   c   sn    j!JTD133I

4??$QUC   KK ),r   )__doc__
__future__r   rN   loggingpathlibr   modelsr   	getLogger__name__rC   r$   rI   rR   r	   r   r   <module>rZ      s<    #    !			8	$'T&Rr   