o
    Ng                      @   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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 )zqadd_user_address_table

Revision ID: b43b32dbe7d2
Revises: a31fb3c02c61
Create Date: 2025-02-25 14:31:28.933373

    )SequenceUnion)opN)mysql)inspectb43b32dbe7d2revisiona31fb3c02c61down_revisionbranch_labels
depends_onreturnc                  C   s  t  } t| }d| vrt jdtjdtjdddddtjdtjdddddtjdtj	d	d
ddtjdtj	dd
ddtjdtj	dd
ddtjdtj	d	d
ddtjdtj	dd
ddtjdtj	dd
ddtjdtj	dd
ddtjdt
 dddtjdt ddtjdt ddtjdgdgdddtddddd  d!d"d# |dD vrt jd!ddgdd$ d%d# |d&D }d'|vrt d&tjd'tjdddd d(d# |d&D }d)|vrt jd)d&dd'gdgd*d+ d S d S d S ),Nuser_addressesidT)unsignedF)autoincrementnullableuser_idZrecipient_named   )length)r   Zaddress_line1   Zaddress_line2ZcityZpostal_code   Zcountry   phone
is_default)defaultr   
created_at
updated_atzusers.idZuser_addresses_ibfk_1CASCADE)nameondeleteutf8mb4_unicode_ciutf8mb4InnoDB)mysql_collatemysql_default_charsetmysql_engineidx_user_idc                 S      g | ]}|d  qS r    .0idxr*   r*   </app/alembic/versions/b43b32dbe7d2_add_user_address_table.py
<listcomp>5       zupgrade.<locals>.<listcomp>)uniquec                 S   r(   r)   r*   r,   cr*   r*   r.   r/   9   r0   orders
address_idc                 S   r(   r)   r*   r,   fkr*   r*   r.   r/   >   r0   fk_orders_addresszSET NULL)r    )r   get_bindr   get_table_namescreate_tablesaColumnr   BIGINTStringBooleanDateTimeForeignKeyConstraintPrimaryKeyConstraintget_indexescreate_indexget_columns
add_columnget_foreign_keyscreate_foreign_key)conn	inspectorcolumnsfksr*   r*   r.   upgrade   sJ    
rN   c                  C   s   t  } t| }dd |dD }d|v rt jdddd dd |dD }d|v r2t dd d	| v rRd
dd |d	D v rKt j	d
d	d t 
d	 d S d S )Nc                 S   r(   r)   r*   r6   r*   r*   r.   r/   R   r0   zdowngrade.<locals>.<listcomp>r4   r8   
foreignkey)type_c                 S   r(   r)   r*   r2   r*   r*   r.   r/   V   r0   r5   r   r'   c                 S   r(   r)   r*   r+   r*   r*   r.   r/   ]   r0   )
table_name)r   r9   r   rH   drop_constraintrF   drop_columnr:   rD   
drop_index
drop_table)rJ   rK   rM   rL   r*   r*   r.   	downgradeJ   s   rV   )r   N)__doc__typingr   r   alembicr   
sqlalchemyr<   Zsqlalchemy.dialectsr   r   r   str__annotations__r
   r   r   rN   rV   r*   r*   r*   r.   <module>   s    
4