+
    ˆ�jü
  ã                   óv   € ^ RI t ^ RIt^ RIHt ^ RIHt R R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR# )é    N)ÚPath)ÚSettingsc                óD   € V ^8„  d   QhR\         R\        P                  /# )é   ÚsettingsÚreturn)r   Úsqlite3Ú
Connection)Úformats   "Úapp\services\event_store.pyÚ__annotate__r      s    € ÷ ñ ”xð ¤G×$6Ñ$6ñ ó    c                 óú   € \        V P                  4      pVP                  P                  R R R7       \        P
                  ! V4      pVP                  R4       VP                  R4       VP                  4        V# )T)ÚparentsÚexist_okz–
        CREATE TABLE IF NOT EXISTS processed_events (
            event_key TEXT PRIMARY KEY,
            created_at REAL NOT NULL
        )
        zî
        CREATE TABLE IF NOT EXISTS conversation_state (
            conversation_id TEXT PRIMARY KEY,
            menu_sent INTEGER NOT NULL DEFAULT 0,
            last_option TEXT,
            updated_at REAL NOT NULL
        )
        )r   Úevent_store_pathÚparentÚmkdirr	   ÚconnectÚexecuteÚcommit)r   Údb_pathÚ
connections   &  r   Ú_connectr      ss   € Ü�8×,Ñ,Ó-€GØ‡N�N×Ñ °ÐÔ5Ü—’ Ó)€JØ×Ñð	ôð ×Ñð	ô	ð ×ÑÔØÐr   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r   Ú	event_keyr   ©r   ÚstrÚbool)r   s   "r   r   r   "   s!   € ÷ ñ ¤ð ´cð ¼dñ r   c                 ó°   € \        V 4      ;_uu_ 4       pVP                  R V34      P                  4       pVRJuuRRR4       #   + '       g   i     R# ; i)z2SELECT 1 FROM processed_events WHERE event_key = ?N)r   r   Úfetchone)r   r   r   Úrows   &&  r   Úis_event_processedr#   "   sK   € Ü	�(×	Ô	˜zØ× Ñ Ø@ØˆLó
÷ ‰(‹*ð 	ð ˜$ˆ÷ 
×	×	Ó	ús   ”%AÁA	c                ó4   € V ^8„  d   QhR\         R\        RR/# )r   r   r   r   N©r   r   )r   s   "r   r   r   +   s!   € ÷ ñ ¤8ð ¼ð Àñ r   c                 óÔ   € \        V 4      ;_uu_ 4       pVP                  R V\        P                  ! 4       34       VP                  4        RRR4       R#   + '       g   i     R# ; i)zLINSERT OR IGNORE INTO processed_events (event_key, created_at) VALUES (?, ?)N©r   r   Útimer   )r   r   r   s   && r   Úmark_event_processedr)   +   sK   € Ü	�(×	Ô	˜zØ×ÑØZØœŸ	š	›Ð$ô	
ð 	×ÑÔ÷ 
×	×	Ò	úó   ”8AÁA'	c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r   Úconversation_idr   r   )r   s   "r   r   r   4   s!   € ÷ $ñ $œHð $´sð $¼tñ $r   c                 óà   € \        V 4      ;_uu_ 4       pVP                  R V34      P                  4       p\        T;'       d
    V^ ,          4      uuRRR4       #   + '       g   i     R# ; i)zBSELECT menu_sent FROM conversation_state WHERE conversation_id = ?N)r   r   r!   r   )r   r,   r   r"   s   &&  r   Úwas_menu_sentr.   4   sW   € Ü	�(×	Ô	˜zØ× Ñ ØPØÐó
÷ ‰(‹*ð 	ô �C—N�N˜C �FÓ#÷ 
×	×	Ó	ús   ”=AÁA-	c                ó4   € V ^8„  d   QhR\         R\        RR/# )r   r   r,   r   Nr%   )r   s   "r   r   r   =   s!   € ÷ ñ œXð ¼ð Àñ r   c                 óÔ   € \        V 4      ;_uu_ 4       pVP                  R V\        P                  ! 4       34       VP                  4        RRR4       R#   + '       g   i     R# ; i)a  
            INSERT INTO conversation_state (conversation_id, menu_sent, updated_at)
            VALUES (?, 1, ?)
            ON CONFLICT(conversation_id) DO UPDATE SET
                menu_sent = 1,
                updated_at = excluded.updated_at
            Nr'   )r   r,   r   s   && r   Úmark_menu_sentr1   =   sO   € Ü	�(×	Ô	˜zØ×Ñðð œdŸiši›kÐ*ô		
ð 	×ÑÔ÷ 
×	×	Ò	úr*   c                ó@   € V ^8„  d   QhR\         R\        R\        RR/# )r   r   r,   Ú	option_idr   Nr%   )r   s   "r   r   r   L   s)   € ÷ ñ œhð ¼ð Ìð ÐQUñ r   c           	      óÔ   € \        V 4      ;_uu_ 4       pVP                  R W\        P                  ! 4       34       VP                  4        RRR4       R#   + '       g   i     R# ; i)a*  
            INSERT INTO conversation_state (conversation_id, menu_sent, last_option, updated_at)
            VALUES (?, 1, ?, ?)
            ON CONFLICT(conversation_id) DO UPDATE SET
                last_option = excluded.last_option,
                updated_at = excluded.updated_at
            Nr'   )r   r,   r3   r   s   &&& r   Úset_last_optionr5   L   sO   € Ü	�(×	Ô	˜zØ×Ñðð ¬¯ª«Ð5ô		
ð 	×ÑÔ÷ 
×	×	Ò	úr*   )r	   r(   Úpathlibr   Úapp.core.configr   r   r#   r)   r.   r1   r5   © r   r   Ú<module>r9      s/   ðÛ Û Ý å $õõ4õõ$õ÷r   