
    wg>                     n    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
  G d de          Zdefd	Zd
S )    )Iterable)Q)UserProductInterface)UserProductRepositoryInterface)	UserOfferUserProductc                       e Zd Zdededee         fdZdededeeef         fdZ	dededdfd	Z
deddfd
ZdededefdZdedefdZdS )UserProductRepositorycategory_iduser_idreturnc                     t          |d          }|r|t          |          z  }t          j                            |          S )NF)r   deleted)product__category_id)r   r   objectsfilter)selfr   r   filterss       T/var/www/html/cms/infrastructure/persistence/repositories/user_product_repository.pyr   zUserProductRepository.filter   sH    GU333 	;qk::::G"))'222    
product_idc                 T    t           j                            |||          \  }}||fS )N)r   r   defaults)r   r   update_or_create)r   r   r   kwargsproductcreateds         r   r   z&UserProductRepository.update_or_create   s1    &.??\fqw?xxr   offer_idNc                 J    t           j                            |||           d S )N)r   r   r   )r   r   r   )r   r   r   r   s       r   update_or_create_user_offerz1UserProductRepository.update_or_create_user_offer   s'    **7XX^*_____r   c                 n    t           j                            |                              d           d S )N)idT)r   )r   r   r   update)r   r   s     r   deletezUserProductRepository.delete   s3    ""j"11888FFFFFr   c                 j    t           j                            ||d                                          S )NF)r   r   r   )r   r   r   existsr   r   r   s      r   r&   zUserProductRepository.exists   s-    "))'jZ_)``ggiiir   c                 D    t           j                            ||          S )N)r   r   )r   r   getr'   s      r   r)   zUserProductRepository.get!   s    "&&w:&NNNr   )__name__
__module____qualname__intr   r   r   tupleboolr   r    r$   r&   r)    r   r   r
   r
   
   s+       3# 3 3AU8V 3 3 3 3     5QegkQkKl        
`3 `# `TX ` ` ` `G G G G G Gjc js jt j j j jO3 OC O O O O O Or   r
   r   c                      t                      S )N)r
   r0   r   r   get_user_product_repositoryr2   %   s     """r   N)collections.abcr   django.db.modelsr   domain.user.productr   #domain.user.user_product_repositoryr   .infrastructure.persistence.models.user.productr   r   r
   r2   r0   r   r   <module>r8      s    $ $ $ $ $ $       4 4 4 4 4 4 N N N N N N Q Q Q Q Q Q Q QO O O O O: O O O6#%C # # # # # #r   