
    e8j#                    ^    d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZ e G d d             Zy)u3  SceneAnalysisContext DTO.

Phase 3.6 — detail_steps._execute가 로드하는 20+개 체크포인트 dict를 단일
dataclass로 집약. 목적:
  - `_execute`와 `_analyze_one` 사이 **명시적 계약**.
  - 테스트에서 fixture로 SceneAnalysisContext만 조립하면 `_analyze_one` 호출 가능.
  - 향후 리팩토링(Phase 3b) 시 closure → ctx.field 전환 base.

본 Phase 3.6 범위:
  - dataclass 정의 + `SceneContextLoader.load_all()` 호출 경로 확립.
  - `_analyze_one`의 closure 소비는 유지 (점진 전환 — Phase 3b/후속).
    )annotations)	dataclassfield)AnyDictListOptionalTuplec                  "   e Zd ZU dZ ee      Zded<    ee      Zded<    ee	      Z
ded<    ee      Zded<    ee	      Zd	ed
<   dZded<    ee      Zded<    ee	      Zded<    ee	      Zded<    ee	      Zded<    ee	      Zded<    ee	      Zd	ed<    ee	      Zded<    ee	      Zded<    ee	      Zded<    ee	      Zded<    ee	      Zded <    ee	      Zd!ed"<   d#Zd$ed%<   d#Zd&ed'<    ee	      Zd(ed)<    ee	      Zded*<    ee	      Zded+<    ee	      Zd(ed,<    ee	      Z ded-<    ee	      Z!ded.<    ee	      Z"d/ed0<    ee	      Z#d1ed2<   d#Z$d$ed3<   dZ%ded4<   dZ&ded5<   y#)6SceneAnalysisContextu   scene_detail step이 생산/소비하는 전체 context.

    각 필드는 `_load_prev_checkpoint` 또는 DB에서 로드된 원본 구조를 유지.
    체크포인트가 없으면 해당 필드는 빈 기본값.
    )default_factoryzList[Dict[str, Any]]segmentsdirector_sceneszDict[int, List[str]]scene_visibledependencieszDict[str, Any]outlook_data strshot_types_blockz	List[Any]shot_type_rowszDict[str, Dict[str, Any]]staging_mapzDict[int, List[Dict[str, Any]]]fixed_elements_by_scenezDict[str, str]location_visuals_by_idscene_shots_mapentitiesz Dict[Tuple[int, int], List[str]]shot_director_vez%Dict[Tuple[int, int], Dict[str, str]]shot_director_vrzDict[int, set]selected_mapshot_scenes_mapz$Dict[int, Dict[int, Dict[str, Any]]]beats_by_scenezDict[int, str]	summariesNzOptional[Dict[str, Any]]world_ruleszOptional[Any]planning_contextzDict[Tuple[int, int], str]chain_bg_guide_by_shotchain_bg_camera_meta_by_shotchain_bg_owned_by_shotchain_bg_id_by_shotessence_by_shotname_by_short_idzDict[str, List[str]]traits_by_short_idzDict[str, frozenset]prop_term_mapepisode_reference_policy
project_id
episode_id)'__name__
__module____qualname____doc__r   listr   __annotations__r   dictr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.        Q/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/dto/scene_analysis.pyr   r      s    &+4%@H"@ -2$,GO)G*/*EM'E */t)DL&D $)#>L.> c %d ;NI; .34-HK*H @EUY?Z<Z .34-HNH 8=T7RO4R  %T:Hn: :?t9T6T>CTX>Y;Y $)#>L.> 8=T7RO4R <AQU;VN8V !&d ;I~; -1K)0 '+m* :?t9T6T KP`dJe "Ge @EUY?Z<Z 7<D6Q3Q 9>d8SO5S (-T'BnB/4T/J,J +0*EM'E :>6= JJr7   r   N)r2   
__future__r   dataclassesr   r   typingr   r   r   r	   r
   r   r6   r7   r8   <module>r<      s4    # ( 3 3 B B Br7   