Ë
    ²SjC  ã                   ó�   — d Z ddlZddlZddlmZ ddlZed„ «       Zd„ Zdede	de	fd	„Z
d
efd„Zdefd„Zddede	de	fd„Zdefd„Zy)uW   Ù„Ø§ÛŒÙ‡ Ø¯ÛŒØªØ§Ø¨ÛŒØ³ Ø³Ø§Ø¯Ù‡ (SQLite) Ø¨Ø±Ø§ÛŒ Ø³Ù�Ø§Ø±Ø´â€ŒÙ‡Ø§ Ùˆ Ú©Ø§Ø±Ø¨Ø±Ø§Ù†.é    N)Úcontextmanagerc               #   óð   K  — t        j                  t        j                  «      } t         j                  | _        	 | –— | j                  «        | j                  «        y # | j                  «        w xY w­w©N)Úsqlite3ÚconnectÚconfigÚDB_PATHÚRowÚrow_factoryÚcommitÚclose©Úcons    ú/var/www/traderbartar/db.pyÚ_connr   
   sH   è ø€ ä
�/‰/œ&Ÿ.™.Ó
)€CÜ—k‘k€C„OðØŠ	Ø�
‰
Œà�	‰	�øˆ�	‰	�üs   ‚9A6¼A! ÁA6Á!A3Á3A6c                  ód   — t        «       5 } | j                  d«       d d d «       y # 1 sw Y   y xY w)Nu  
            CREATE TABLE IF NOT EXISTS users (
                user_id     INTEGER PRIMARY KEY,
                username    TEXT,
                first_name  TEXT,
                created_at  INTEGER
            );

            CREATE TABLE IF NOT EXISTS orders (
                id          INTEGER PRIMARY KEY AUTOINCREMENT,
                user_id     INTEGER,
                product_key TEXT,
                title       TEXT,
                amount_toman INTEGER,
                method      TEXT,          -- 'toman' | 'usdt'
                status      TEXT,          -- pending | awaiting_review | paid | rejected
                txid        TEXT,          -- Ø¨Ø±Ø§ÛŒ Ù¾Ø±Ø¯Ø§Ø®Øª ØªØªØ±
                created_at  INTEGER,
                updated_at  INTEGER
            );
            )r   Úexecutescriptr   s    r   Úinit_dbr      s1   € Ü	‹ð 
�CØ×Ñðô	
÷
÷ 
ñ 
ús   ‹&¦/Úuser_idÚusernameÚ
first_namec                 ó¤   — t        «       5 }|j                  d| ||t        t        j                  «       «      f«       d d d «       y # 1 sw Y   y xY w)NzúINSERT INTO users(user_id, username, first_name, created_at)
               VALUES(?,?,?,?)
               ON CONFLICT(user_id) DO UPDATE SET username=excluded.username,
                                                  first_name=excluded.first_name©r   ÚexecuteÚintÚtime)r   r   r   r   s       r   Úupsert_userr   0   sI   € Ü	‹ð 
�CØ�‰ðTð �h 
¬C´·	±	³Ó,<Ð=ô	
÷
÷ 
ñ 
ús   ‹2AÁAÚreturnc                 óÈ   — t        t        j                  «       «      }t        «       5 }|j                  d| ||||d||f«      }|j                  cd d d «       S # 1 sw Y   y xY w)Nz®INSERT INTO orders(user_id, product_key, title, amount_toman,
                                  method, status, created_at, updated_at)
               VALUES(?,?,?,?,?,?,?,?)Úpending)r   r   r   r   Ú	lastrowid)r   Úproduct_keyÚtitleÚamount_tomanÚmethodÚnowr   Úcurs           r   Úcreate_orderr(   ;   sa   € Ü
Œd�i‰i‹kÓ
€CÜ	‹ð �CØ�k‰kð*ð �k 5¨,¸À	È3ÐPSÐTó	
ˆð �}‰}÷÷ ò ús   ¨&AÁA!Úorder_idc                 ó¢   — t        «       5 }|j                  d| f«      j                  «       }|rt        |«      nd cd d d «       S # 1 sw Y   y xY w)NzSELECT * FROM orders WHERE id=?)r   r   ÚfetchoneÚdict)r)   r   Úrows      r   Ú	get_orderr.   G   sE   € Ü	‹ð *�CØ�k‰kÐ;¸h¸[ÓI×RÑRÓTˆÙŒt�CŒy T÷*÷ *ò *ús   ‹0AÁAÚstatusÚtxidc           
      ó
  — t        «       5 }|�2|j                  d||t        t        j                  «       «      | f«       n0|j                  d|t        t        j                  «       «      | f«       d d d «       y # 1 sw Y   y xY w)Nz;UPDATE orders SET status=?, txid=?, updated_at=? WHERE id=?z3UPDATE orders SET status=?, updated_at=? WHERE id=?r   )r)   r/   r0   r   s       r   Úset_order_statusr2   M   sp   € Ü	‹ð 
�CØÐØ�K‰KØMØ˜œs¤4§9¡9£;Ó/°Ð:õð
 �K‰KØEØœœTŸY™Y›[Ó)¨8Ð4ô÷
÷ 
ñ 
ús   ‹A%A9Á9Bc                 óÀ   — t        «       5 }|j                  d| f«      j                  «       }|D �cg c]  }t        |«      ‘Œ c}cd d d «       S c c}w # 1 sw Y   y xY w)NzGSELECT * FROM orders WHERE user_id=? AND status='paid' ORDER BY id DESC)r   r   Úfetchallr,   )r   r   ÚrowsÚrs       r   Úuser_paid_ordersr7   [   s^   € Ü	‹ð '�CØ�{‰{ØUØˆJó
÷ ‰(‹*ð 	ð "&Ö&˜A”�Q•Ò&÷'ñ 'ùò
 '÷'ð 'ús   ‹&A±AÁAÁAÁAr   )Ú__doc__r   r   Ú
contextlibr   r   r   r   r   Ústrr   r(   r.   r2   r7   © ó    r   ú<module>r=      s…   ðá ]Û Û Ý %ã ð ñó ðò
ð6
˜ð 
¨ð 
¸ó 
ð	Àsó 	ð*˜ó *ñ˜sð ¨Cð °só ð'˜cô 'r<   