
    ݡhu                        d dl mZ d dlZd dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZ  e	            ZdddZd Zd ZddZd Zedk    r e             dS dS )    )annotationsN)datetime)DictAnyList)
get_client)start_batchfinish_batchingest_stagingbuild_candidatesauto_decideapply_decisionsFtablestrkey_colnumericboolc                >   	 t                               |                                           }|r|                    |d          n|                    |d          }|                                 d S # t          $ r }t          d|  d|            Y d }~d S d }~ww xY w)Nr   	__never__z[WARN] clear z: )sbr   deletegtneqexecute	Exceptionprint)r   r   r   qes        1/var/www/html/bot/app/sync2/run_sample_newdata.py_clear_table_allr       s    ,HHUOO""$$ 'HADD!QUU7K-H-H			 , , ,*e**q**+++++++++,s   A.A2 2
B<BBc                    t          d           t          dd           t          dd           t          dd           t          dd           t          ddd	
           t          ddd	
           t          dd           d S )Nu2   [*] RESET=1 detected → reset all govtrack tablesgov_staff_eventsbatch_idmatch_decisionsmatch_candidatesstaging_gov_staffgov_staff_current	person_idT)r   person_registryingest_batches)r   r         r   	reset_allr-      s    	
>???':666&:666':666(:666(;EEEE&;EEEE%:66666r,   c                 n   g d} g }| D ]i}t                               d                              d|i                                          j        }|                    |d         d                    j|\  }}}}}}	}
t          j                                                    }|dddd	d
dd|d	|ddddddd|d	|dddd	ddd|d	|ddddddd|d	|ddddddd|d	|	dddd	dd d|d	|
dddd	d!d d|d	g}|D ]A}t                               d"                              |                                           Bd#S )$u  
    초기 '현재 재직' 샘플 (MOTIE):
      - 이지훈    (소재부품과,  주무관, 010-1000-1000, 업무: 소재 총괄) → 이번 배치에서 부서+전화+업무 변경
      - 박서연    (에너지정책과, 사무관, 010-1111-1111, 업무: 에너지 정책) → 이번 배치에서 직위변경
      - 김민수_A  (디지털혁신과, 주무관, 010-2222-2222, 업무: DX 추진)
      - 김민수_B  (무역정책관실, 사무관, 010-3333-3333, 업무: 무역 지원)
      - 최보람    (반도체과,    사무관, 010-4444-4444, 업무: 반도체 진흥) → 이번 배치 미포함(퇴사 이벤트 유도)
      - 홍길동_A  (소재부품과,  주무관, 02-5000-1001)
      - 홍길동_B  (무역정책관실, 주무관, 02-5000-2002)
    )	   이지훈	   박서연	   김민수r1   	   최보람	   홍길동r3   r)   canonical_namer   r(   MOTIEr/   u   산업정책실 소재부품과	   주무관z010-1000-1000u   소재 총괄T)	r(   sourcename
departmentpositionphonetask	is_active
updated_atr0      에너지정책과	   사무관010-1111-1111   에너지 정책r1      디지털혁신과z010-2222-2222	   DX 추진u   무역정책관실z010-3333-3333u   무역 지원r2   u   반도체과z010-4444-4444u   반도체 진흥r3   z02-5000-1001-z02-5000-2002r'   N)	r   r   insertr   dataappendr   utcnow	isoformat)personscreatednmr   pid_이지훈   pid_박서연   pid_김민수A   pid_김민수B   pid_최보람   pid_홍A   pid_홍Bnowrowsrows                 r   seed_baseline_currentrY   !   s    jiiGG * *HH&''..0@"/EFFNNPPUqtK())))*1(]M>>Hh
/


%
%
'
'C#w[|  KV  ap  zI  Z^  nq  	r  	r#w[o  FQ  \k  uG  VZ  jm  	n  	n$w[o  FQ  \k  u@  RV  fi  	j  	j$w[o  FQ  \k  uD  TX  hk  	l  	l#w[i  DO  Zi  sE  SW  gj  	k  	kG[Xy  HS  ^l  wz  QU  eh  	i  	iG[Xl  CN  Yg  ru  LP  `c  	d  	dD  < <
$%%,,S1199;;;;< <r,   returnList[Dict[str, Any]]c                     ddddddi dddd	d
ddi dddddddi dddd	dddi dddddddi dddddddi dddddddi dgS )uZ  
    이번 배치(스테이징):
      - [AUTO]     이지훈  : (부서 이동 + 전화 변경 + 업무 변경)
      - [AUTO?]    박서연  : (직위변경)
      - [PENDING]  김민수  : (동명이인 2명 존재, 전화 공란 → 모호)
      - [NEW-수동] 정해인  : (후보 없음 → '신규로 생성' 선택 필요)
      - [PENDING]  최수지  : (후보 없음 → 신규 여부 판단)
      - [PENDING]  홍길동×2: (동명이인 동시 이동, 둘 다 후보로 떠서 수동 매칭 필요)
      - [DEPARTED] 최보람  : (이번 배치 미포함 → 자동 퇴사 감지)
    r5   r/   u   산업정책실 전략기획과r6   z010-1000-5555u   전략 조정)r7   r8   r9   r:   r;   r<   rawr0   r?   u   과장rA   rB   r1   u   정책지원과 u   지원u	   정해인z010-9999-9999u   정책 지원u	   최수지rC   r@   rD   r3   u   원전정책과rE   u   소재전략과r+   r+   r,   r   make_staging_rowsr_   A   s2    K?`ny  ET  ^m  vx  	y  	yK?Sai  uD  N`  ik  	l  	lK?P^itv  AI  RT  	U  	UK?Sal  xG  Q`  ik  	l  	lK?Salwy  DO  XZ  	[  	[K?P^itv  AD  MO  	P  	PK?P^itv  AD  MO  	P  	P r,   c                 x   t          j        d          dk    rt                       t                       t	          j                                        d          } t          d|             t          |            t                      }t          | |           t          |            t          | dd           t          j        d          dk    rt          |            t          d	|            t          j        d          dk    rt          d
           t          | ddt          |          i           d S )NRESET1zsample2-%Y%m%d-%H%M%Sz[+] batch_id = g?g333333?)himarginAPPLYu(   [=] Ready. Open /sync → 배치 선택:u}   [*] 아직 적용 전입니다. 화면 상단의 “적용(Apply Decisions)” 버튼을 눌러 이벤트를 생성하세요.	COMPLETEDr5   )statussource_summary)osgetenvr-   rY   r   rI   strftimer   r	   r_   r   r   r   r   r
   len)r#   stagess     r   runrn   \   s;   	yS    ))*ABBH	
&H
&
&'''  F8V$$$XT$//// 
yS  !!! 

4h???	yS    N  	O  	O  	O +wF>TUUUUUUr,   __main__)F)r   r   r   r   r   r   )rZ   r[   )
__future__r   ri   r   typingr   r   r   app.services.supabase_servicer   app.sync2.pipeliner	   r
   r   r   r   r   r   r    r-   rY   r_   rn   __name__r+   r,   r   <module>ru      sA   " " " " " " 				       " " " " " " " " " " 4 4 4 4 4 4               
 Z\\, , , , ,7 7 7< < <@   6V V V< zCEEEEE r,   