
    wg                        d dl mZmZ 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 d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZ  G d de          Z G d de          Z G d de          ZdS )    )HttpRequestJsonResponse)PageInterface)ProductRepositoryInterface)UserProductRepositoryInterface)ProductType)ExclusiveCardOrganization)get_product_repository)get_user_product_repository)BasePageView)CatalogProductSerializerProductsSerializer)
Pagination)UserProductsSerializer)APIUserRequiredc                   D     e Zd ZU  e            Zeed<   def fdZ xZ	S )ShowCatalogPageViewproduct_repositorypagec                     t                      j        dd|i|}| j        j        j        }| j        j        dd          }|r| j                            |          }n| j                            |d          }t          j	        
                    |          }t          |d|id          j        |d	<   t          j	                                        |d
<   |S )Nr      F)private)slugtypeT)contextmanyproductsexclusive_card )superget_context_datarequestuseris_authenticatedpathr   get_catalog_offersr   objectsgetr   datar	   first)	selfr   kwargsr   user_is_authenticatedproducts_slugr   product_type	__class__s	           &/var/www/html/cms/web/catalog/views.pyr"   z$ShowCatalogPageView.get_context_data   s    *%''*????? $ 1 B)!##.  	`.AA-PPHH.AA-Y^A__H"*..M.BB6x&R^I_fjkkkp
$1$9$?$?$A$A !    )
__name__
__module____qualname__r   r   r   __annotations__r   r"   __classcell__)r1   s   @r2   r   r      sa         5K5K5M5M2MMM]          r3   r   c                   6    e Zd Z e            fdededefdZdS )GetProductsr#   products_repositoryreturnc                    |j                             d          }	 t          |                    ||j        j                  d          j        }n*# t          j        $ r t          dd| di          cY S w xY wt          d|i          S )	Norganization)organization_iduser_idT)r   errorzno organization with id ''r   )
GETr)   r   get_enabled_products_to_creater$   idr*   r
   DoesNotExistr   )r,   r#   r;   r>   r   s        r2   r)   zGetProducts.get/   s     {~66	X)#BB$0',/ C   	  
  H ( 	X 	X 	X*Ul*U*U*U VWWWWW	X Z2333s   5A $A98A9N)r4   r5   r6   r   r   r   r   r)   r    r3   r2   r:   r:   .   sQ        VlVlVnVn4 4"49S4	4 4 4 4 4 4r3   r:   c                   6    e Zd Z e            fdededefdZdS )GetUserProductsr#   user_product_repositoryr<   c                     |j                             d          }t          |          }|                    |                    ||j        j                  dt                    }t          |          S )Ncategory)category_idr@   r   )	rC   r)   r   paginatefilterr$   rE   r   r   )r,   r#   rI   product_category
paginationr   s         r2   r)   zGetUserProducts.getB   sn    
 #;??:66((
&&#**7GQXQ]Q`*aa"
 
 H%%%r3   N)r4   r5   r6   r   r   r   r   r)   r    r3   r2   rH   rH   A   sZ         C^B]B_B_& && "@& 
	& & & & & &r3   rH   N) django.httpr   r    domain.page_blocks.entities.pager   domain.products.repositoryr   #domain.user.user_product_repositoryr   6infrastructure.persistence.models.catalog.product_typer   2infrastructure.persistence.models.catalog.productsr	   r
   :infrastructure.persistence.repositories.product_repositoryr   ?infrastructure.persistence.repositories.user_product_repositoryr   web.blocks.viewsr   web.catalog.serializersr   r   web.common.paginationr   web.user.serializersr   web.user.views.base_user_viewr   r   r:   rH   r    r3   r2   <module>r^      s   1 1 1 1 1 1 1 1 : : : : : : A A A A A A N N N N N N N N N N N N                  * ) ) ) ) ) P P P P P P P P , , , , , , 7 7 7 7 7 7 9 9 9 9 9 9    ,   ,4 4 4 4 4/ 4 4 4&& & & & &o & & & & &r3   