o
    i                     @   s   U d Z ddlmZmZ ddlmZ ddlZddlmZ dZ	e
ed< dZee
df ed	< dZee
ee
 df ed
< dZee
ee
 df ed< dddZdddZdS )zpadd model_id to agents

Revision ID: f6e5d4c3b2a1
Revises: a1b2c3d4e5f6
Create Date: 2026-03-28 18:00:00+08:00

    )SequenceUnion)opN)inspectf6e5d4c3b2a1revisiona1b2c3d4e5f6down_revisionbranch_labels
depends_onreturnc               	   C   s   t  } t| }dd |dD }d|vr:t dtjdt dd t jddddgd	gd d
d t 	dddg d|v rEt 
d d S d S )Nc                 S      h | ]}|d  qS name .0columnr   r   U/lsinfo/ai/hellotax_ai/base_platform/alembic/versions/20260328_1800_agent_model_id.py	<setcomp>       zupgrade.<locals>.<setcomp>agentsmodel_idT)nullablefk_agents_model_id_modelsmodelsidpublic)source_schemareferent_schemaix_agents_model_idorchestrator_modela,  
            UPDATE agents
            SET model_id = models.id
            FROM public.models
            WHERE agents.model_id IS NULL
              AND (
                agents.orchestrator_model = models.name
                OR agents.orchestrator_model = models.code
              )
            )r   get_bindr   get_columns
add_columnsaColumnIntegercreate_foreign_keycreate_indexexecute)bind	inspectorcolumnsr   r   r   upgrade   s(   	r.   c                  C   s   t  } t| }dd |dD }d|v rIdd |dD }d|v r+t jddd dd |dD }d	|v rAt jd	dd
d t dd d S d S )Nc                 S   r   r   r   r   r   r   r   r   9   r   zdowngrade.<locals>.<setcomp>r   r   c                 S   r   r   r   )r   indexr   r   r   r   <   r   r    )
table_namec                 S   s   h | ]}| d r|d  qS r   )get)r   fkr   r   r   r   ?   s    r   
foreignkey)type_)	r   r"   r   r#   get_indexes
drop_indexget_foreign_keysdrop_constraintdrop_column)r+   r,   r-   indexesforeign_keysr   r   r   	downgrade6   s   r<   )r   N)__doc__typingr   r   alembicr   
sqlalchemyr%   r   r   str__annotations__r	   r
   r   r.   r<   r   r   r   r   <module>   s    
!