Ë
    Ì
âiÚ  ã                   óÌ   — d Z i 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%œ¥Zd&d'd(d)d*d+œZd,ed-efd.„Zd,ed-efd/„Zd0ed-efd1„Zd0ed-efd2„Zy3)4zƒ
Database Constants for Test Utilities

Centralized definitions for indexes and triggers to avoid duplication
across test modules.
Úix_sessions_user_id)ÚsessionsÚuser_idFÚix_sessions_expires_at)r   Ú
expires_atFÚix_streams_status)ÚstreamsÚstatusFÚix_streams_created_by)r   Ú
created_byFÚix_comments_stream_id)ÚcommentsÚ	stream_idFÚix_comments_user_id)r   r   FÚix_comments_parent_id)r   Ú	parent_idFÚix_processing_jobs_stream_id)Úprocessing_jobsr   FÚix_processing_jobs_status)r   r	   FÚix_activity_log_user_id)Úactivity_logr   FÚix_activity_log_created_at)r   Ú
created_atFÚix_watch_history_user_id)Úwatch_historyr   FÚix_watch_history_stream_id)r   r   FÚ ix_watch_history_last_watched_at)r   Úlast_watched_atFÚix_twitch_oauth_user_id)Útwitch_oauthr   TÚix_chapters_stream_id)Úchaptersr   FÚix_chapters_game_display_name)r!   Úgame_display_nameF)Úchat_messagesr   F)Úsite_settingsÚkeyT)Úix_chat_messages_stream_idÚix_site_settings_keyÚusersr   r   r   r%   )Úupdate_users_updated_atÚupdate_streams_updated_atÚupdate_comments_updated_atÚupdate_twitch_oauth_updated_atÚupdate_site_settings_updated_atÚ
index_nameÚreturnc           	      óX   — | t         vryt         |    \  }}}|rdnd}d|› d| › d|› d|› d�	S )z0Generate CREATE INDEX SQL for a given index nameÚ zUNIQUE z"    op.execute("""
        CREATE zINDEX IF NOT EXISTS ú ON ú(z);
    """)
©ÚINDEX_DEFINITIONS)r/   ÚtableÚcolumnÚuniqueÚ
unique_strs        ú7/home/factor_ks/STREAMA2026/tests/utils/db_constants.pyÚget_index_sqlr<   )   sS   € àÔ*Ñ*Øä-¨jÑ9Ñ€Eˆ6�6Ù$‘¨"€JØ0°°Ð<PÐQ[ÐP\Ð\`ÐafÐ`gÐghÐioÐhpÐp~ÐÐó    c                 ó    — | t         vryd| › d�S )z.Generate DROP INDEX SQL for a given index namer2   z0    op.execute("""
        DROP INDEX IF EXISTS ú;
    """)
r5   )r/   s    r;   Úget_index_downgrade_sqlr@   3   s   € àÔ*Ñ*ØØ>¸z¸lÈ-ÐXÐXr=   Útrigger_namec           	      óD   — | t         vryt         |    }d| › d|› d| › d|› d�	S )z4Generate CREATE TRIGGER SQL for a given trigger namer2   ú2    op.execute("""
        DROP TRIGGER IF EXISTS r3   z;
        CREATE TRIGGER z
        BEFORE UPDATE ON zL
        FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
    """)
©ÚTRIGGER_DEFINITIONS©rA   r7   s     r;   Úget_trigger_sqlrG   :   sK   € àÔ.Ñ.Øä Ñ-€Eð Ø ,˜~¨T°%°ð 9Ø$�~ð &Ø˜ð !ðð r=   c                 ó8   — | t         vryt         |    }d| › d|› d�S )z2Generate DROP TRIGGER SQL for a given trigger namer2   rC   r3   r?   rD   rF   s     r;   Úget_trigger_downgrade_sqlrI   I   s0   € àÔ.Ñ.Øä Ñ-€EØ@ÀÀÈdÐSXÐRYÐYfÐgÐgr=   N)Ú__doc__r6   rE   Ústrr<   r@   rG   rI   © r=   r;   ú<module>rM      sg  ðñðØÐ9ðàÐ?ðð Ð5ðð Ð=ð	ð
 Ð=ðð Ð9ðð Ð=ðð #Ð$Kðð  Ð!Eðð ÐAðð !Ð"Gðð Ð Cðð !Ð"Gðð 'Ð(Sðð Ð@ðð  Ð=ð!ð" $Ð%Mð#ð$ #HØ:ò'Ð ð0  'Ø!*Ø",Ø&4Ø'6ñÐ ð@˜cð @ có @ðY¨ð Y°ó Yð #ð ¨#ó ðh¨Cð h°Cô hr=   