§
    F•jB  ã                   óD   — d dl mZ d dlmZ d dlmZ  G d„ d¦  «        ZdS )é    )ÚUUID)ÚOptional)ÚPartnerc                   óJ   — e Zd ZdZd„ Zd„ Zdeddfd„Zdede	e         fd	„Z
dS )
ÚPartnerRepositoryuu   
    Adapter ná»‘i Domain Entity Partner xuá»‘ng báº£ng PostgreSQL.
    LuÃ´n cÃ´ láº­p trong Schema 'partners'.
    c                 ó   — || _         d S )N)Ú_conn)ÚselfÚconns     úFC:\Projects\DSCons\app\modules\partners\infrastructure\repositories.pyÚ__init__zPartnerRepository.__init__
   s   € ØˆŒ
ˆ
ˆ
ó    c                 ó”   — | j                              ¦   «         5 }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nun  
                CREATE SCHEMA IF NOT EXISTS partners;
                CREATE TABLE IF NOT EXISTS partners.partners (
                    id UUID PRIMARY KEY,
                    name TEXT NOT NULL,
                    tax_code TEXT,
                    type TEXT NOT NULL,
                    address TEXT,
                    created_at TIMESTAMP WITH TIME ZONE
                );
                -- Unique index cho mÃ£ sá»‘ thuáº¿ náº¿u cÃ³
                CREATE UNIQUE INDEX IF NOT EXISTS idx_partners_tax_code 
                ON partners.partners(tax_code) 
                WHERE tax_code IS NOT NULL;
            )r	   ÚcursorÚexecute)r
   Úcurs     r   Úensure_schemazPartnerRepository.ensure_schema   s’   € ØŒZ×ÒÑ Ô ð 	 CØ�KŠKð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   š=½AÁAÚpartnerÚreturnNc           
      ó   — |                       ¦   «          | j                             ¦   «         5 }|                     dt	          |j        ¦  «        |j        |j        |j        |j	        |j
        f¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Na‘  
                INSERT INTO partners.partners 
                (id, name, tax_code, type, address, created_at)
                VALUES (%s, %s, %s, %s, %s, %s)
                ON CONFLICT (id) DO UPDATE SET
                    name = EXCLUDED.name,
                    tax_code = EXCLUDED.tax_code,
                    type = EXCLUDED.type,
                    address = EXCLUDED.address;
            )r   r	   r   r   ÚstrÚidÚnameÚtax_codeÚtypeÚaddressÚ
created_at)r
   r   r   s      r   ÚsavezPartnerRepository.save   sÑ   € Ø×ÒÑÔÐØŒZ×ÒÑ Ô ð 	 CØ�KŠKð 	õ �G”J‘”Ø”ØÔ Ø”Ø”ØÔ"ðñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ®ABÂBÂ
BÚ
partner_idc                 ó  — | j                              ¦   «         5 }|                     dt          |¦  «        f¦  «         |                     ¦   «         }|rt          di |¤Žcd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   d S )Nz-SELECT * FROM partners.partners WHERE id = %s© )r	   r   r   r   Úfetchoner   )r
   r   r   Úrows       r   Ú	get_by_idzPartnerRepository.get_by_id4   sÜ   € ØŒZ×ÒÑ Ô ð 	& CØ�KŠKÐGÍ#ÈjÉ/Ì/ÐI[Ñ\Ô\Ð\Ø—,’,‘.”.ˆCØð &Ý�~�~ �~�~ð		&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð&ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð
 ˆts   šAA:Á:A>ÂA>)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r$   r!   r   r   r   r      s…   € € € € € ðð ðð ð ðð ð ð$˜Gð ¨ð ð ð ð ð* Dð ¨X°gÔ->ð ð ð ð ð ð r   r   N)Úuuidr   Útypingr   Ú$app.modules.partners.domain.entitiesr   r   r!   r   r   ú<module>r,      sm   ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ð5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5r   