
    Ǚ$j?                         d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZmZ daddedz  fdZd	 Zd
 Zdeeddf         fdZddZdS )    )	Generator)SQLModelSessioncreate_engine)text)
StaticPool)Settingsget_settingsNsettingsc                 r   | pt                      } i }i }| j                            d          rddi}| j        dk    r
t          |d<   t	          | j        fd|i|add l}t          j        	                    t
                     | j                            d          rt          t
                     t
          S )Nsqlitecheck_same_threadFz	sqlite://	poolclassconnect_argsr   )r
   database_url
startswithr   r   _engineapp.models.corer   metadata
create_all_apply_sqlite_mvp_upgrades)r   r   engine_kwargsapps       C/home/agent/projects/AutoShorts_Dashboard/backend/app/db/session.pyinit_dbr      s    )<>>HLM''11 4+U3 K//)3M+&H1^^^P]^^G  )))''11 ,"7+++N    c                    g dddgg dg dg dg ddd	gg d
d}|                                  5 }|                                D ]o\  }}d |                    t          d| d                    D             }|s8|D ]4\  }}||vr+|                    t          d| d| d|                      5p	 ddd           dS # 1 swxY w Y   dS )zTiny MVP schema guard for local SQLite dev DBs.

    Alembic remains the right production path. This keeps the Tailnet preview DB
    usable while the product model is still moving quickly.
    ))
package_idVARCHAR)topic_idr   )external_youtube_idr   )external_tiktok_idr   source_labelr   is_demoBOOLEAN DEFAULT 0import_batch_labelr   )external_post_idr   )source_metadata_jsonJSON DEFAULT '{}')r#   r%   r(   )r#   r%   r(   source_file_namer   )mapping_statuszVARCHAR DEFAULT 'open')
ignored_atDATETIME)ignore_reasonr   )r#   r%   r(   r-   ))youtube_video_idr   )video_url_internalr   )website_link_allowedr'   )duplicate_status_jsonr,   )priorityzINTEGER DEFAULT 0)
updated_atr1   ))script_constraintsr   )visual_constraintsr   )voice_constraintsr   )expected_package_idr   )actual_package_idr   )video_asset_idr   )
videoasset	postdraftanalyticsimportbatchexternalpostanalyticspostsnapshotwebsitecompanionthemeproductionqueueitemc                     h | ]
}|d          S )    ).0rows     r   	<setcomp>z-_apply_sqlite_mvp_upgrades.<locals>.<setcomp>Y   s    \\\3A\\\r   zPRAGMA table_info()zALTER TABLE z ADD COLUMN  N)beginitemsexecuter   )engineupgradesconntablecolumnsexistingnameddl_types           r   r   r      s   
 
 
 ,9
!
 !
 !


 
 
"
 "
 "

 
 
 .&
 
  
  
Y4 4Hj 
 \4&nn.. 	\ 	\NE7\\$,,t<YQV<Y<Y<Y7Z7Z*[*[\\\H ") \ \hx''LL&YU&Y&Y&Y&Yx&Y&Y!Z!Z[[[\		\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \s   BCC
Cc                  :    t           t                      S t           S N)r   r   rI   r   r   
get_enginer\   a   s    yyNr   returnc               #   z   K   t          t                                5 } | V  d d d            d S # 1 swxY w Y   d S r[   )r   r\   )sessions    r   get_sessionr`   h   s      			 '                 s   044c                     | pt                      } dd l}t          j                            |            t          j                            |            d S )Nr   )r\   r   r   r   drop_allr   )rR   r   s     r   reset_db_for_testsrc   m   sP    #z||Fv&&&  (((((r   r[   )collections.abcr   sqlmodelr   r   r   
sqlalchemyr   sqlalchemy.poolr   app.core.configr	   r
   r   r   r   r\   r`   rc   rI   r   r   <module>ri      s   % % % % % % 5 5 5 5 5 5 5 5 5 5       & & & & & & 2 2 2 2 2 2 2 2
 ho    "B\ B\ B\J  Ywd23    
) ) ) ) ) )r   