
    $h*                        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)u   
    Supabase(PostgREST)는 DELETE에 필터가 필요해서,
    - numeric=True  → key_col > 0 로 전부 삭제(시퀀스/양수 PK 가정)
    - numeric=False → key_col != '__never__' 로 전부 삭제(문자열 PK 가정)
    r   	__never__z[WARN] clear z: N)sbr   deletegtneqexecute	Exceptionprint)r   r   r   qes        1/var/www/html/bot/app/sync2/run_sample_pending.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                 @   g } d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
g}	|	D ]A}
t                               d                               |
                                           BdS )!u  
    현재 재직(기준) 상태를 몇 명 만들어둠 (source='MOTIE')
      - 이서준(정책과 과장, 010-1000-1000)
      - 김민수A(산업정책과 사무관, 010-1111-1111)
      - 김민수B(에너지과   주무관, 010-2222-2222)
      - 박영희(소재과     주무관, 010-3333-3333)
      - 문지호(반도체과   사무관, 010-4444-4444) ← 이번 배치에서 제외 → DEPARTED 유도
    )	   이서준	   김민수r0   	   박영희	   문지호r)   canonical_namer   r(   MOTIEr/   u	   정책과   과장010-1000-1000   정책 총괄TN)
r(   sourcename
departmentpositionphonetask	is_active
updated_atlast_seen_batchr0      산업정책과	   사무관010-1111-1111   정책 기획   에너지과	   주무관010-2222-2222u   에너지 업무r1   	   소재과010-3333-3333   소재 정책r2   u   반도체과z010-4444-4444u   반도체 진흥r'   )	r   r   insertr   dataappendr   utcnow	isoformat)creatednmr   pid_이서준   pid_김민수A   pid_김민수B   pid_박영희   pid_문지호nowrowsrows              r   seed_baseline_currentr[   &   s&    GO * *HH&''..0@"/EFFNNPPUqtK())))RYOM>>=-
/


%
%
'
'C#w[f  yA  N]  gv  FJ  Z]  rv  	w  	w$w[l  {F  Q`  jy  IM  ]`  uy  	z  	z$w[i  zE  P_  i{  IM  ]`  uy  	z  	z#w[f  yD  O^  hw  GK  [^  sw  	x  	x#w[i  zE  P_  i{  IM  ]`  uy  	z  	zD  < <
$%%,,S1199;;;;< <r,   returnList[Dict[str, Any]]c                 r    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 )u}  
    이번 배치(스테이징):
      - [AUTO]   이서준: 정책과 → 미래전략과 (MOVE)
      - [KEEP]   김민수A: 동일
      - [KEEP]   김민수B: 동일
      - [KEEP]   박영희  : 동일
      - [PENDING]최수지  : 신규 후보 없음
      - [PENDING]김민수? : 전화 없음 + 애매 → 모호
      - [DEPARTED] 문지호: 이번 배치 미포함
    r4   r/   u   미래전략과r5   r6   r7   )r8   r9   r:   r;   r<   r=   rawr0   rA   rB   rC   rD   rE   rF   rG   u   এ너지 업무r1   rH   rI   rJ   u	   최수지u   디지털혁신과 u	   DX 추진u   정책지원과u   지원r+   r+   r,   r   make_staging_rowsra   A   s    K?P^f  tC  M\  fh  	i  	iK?P^i  uD  N]  gi  	j  	jK~]h  tC  M_  hj  	k  	kK{\g  sB  L[  eg  	h  	hK?Salwy  P[  gi  	j  	jK?P^itv  MU  df  	g  	g r,   c                 @   t          j        d          dk    rt                       t                       t	          j                                        d          } t          d|             t          |            t                      }t          | |           t          |            t          | dd           t          |            t                              d                              d	                              d
|                                           j        pg }i }|D ]4}|                    dd          }|                    |d          dz   ||<   5t+          | ddt-          |          i           t          d|           t          d|            d S )NRESET1zsample-%Y%m%d-%H%M%Sz[+] batch_id = g333333?g?)himarginr"   *r#   
event_typeUNKNOWNr      	COMPLETEDr4   )statussource_summaryz[=] Event counts:u(   [=] Done. Open:  /sync  → select batch)osgetenvr-   r[   r   rN   strftimer   r	   ra   r   r   r   r   r   r   selecteqr   rL   getr
   len)r#   stageseventscountsr   ets         r   runry   U   s   	yS    ))*@AAH	
&H
&
&'''  F8V$$$XT$////H XX())005588XNNVVXX]cacFF + +UU<++ZZA&&*r

+wF>TUUUU	
v&&&	
4h?????r,   __main__)F)r   r   r   r   r   r   )r\   r]   )
__future__r   rn   r   typingr   r   r   app.services.supabase_servicer   app.sync2.pipeliner	   r
   r   r   r   r   r   r    r-   r[   ra   ry   __name__r+   r,   r   <module>r      s@   " " " " " " 				       " " " " " " " " " " 4 4 4 4 4 4               
 Z\\, , , , ,7 7 7< < <6   (@ @ @> zCEEEEE r,   