o
    µQ?h  ã                   @   sà   d dl mZ d dlmZ d dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ dZd	Zd
efdd„ZeddG dd„ de
ƒƒZdededefdd„Zd defdd„Zd!defdd„Zdefdd„Zdd„ ZdS )"é    )Ú	dataclass)ÚdatetimeN)Ú
ArrayUnionÚDocumentSnapshotÚdb)ÚDocumentData)Ú	API_Error)ÚParamsÚ prj_dic3lcCCpMEV2JXsZJy3JIyKXi0DÚXR7pJeG12SlLSMYGW2SRHvUNÚparamsc                 C   s<  | j  d¡}| j  d¡}| j}t d¡ dd|¡ ¡ }|r"tddƒ‚dt› d	}d
t› ddœ}|D ]i}||dœ}zHt	j
|||d}	|	 ¡  |	jdv r€|	 ¡ }
|
 d¡sit d¡ |¡ t|g|g ƒ|dœ¡ nt d¡ |¡ dt|gƒi¡ |	 ¡ W   S W q2 t	jjy› } zt|ƒ W Y d }~ d S d }~ww d S )NÚdomainsÚprimaryDomainÚenterprisesÚ	hostnamesÚarray_contains_anyzDomain already existsi  z#https://api.vercel.com/v1/projects/z/domainszBearer zapplication/json)ÚAuthorizationzContent-Type)ÚnameÚredirect)ÚheadersÚjson)éÈ   éÉ   ÚverifiedÚshops)r   ÚdomainÚpendingDomains)ÚargsÚgetÚidr   Ú
collectionÚwherer   Ú	projectIdÚ	api_tokenÚrequestsÚpostÚraise_for_statusÚstatus_coder   ÚdocumentÚupdater   Ú
exceptionsÚRequestExceptionÚprint)r   r   r   ÚshopIdÚqueryÚurlr   r   ÚpayloadÚresponseÚdataÚe© r4   úL/var/www/html/riverr-enterprise-integrations-main/V2/functions/Shops/main.pyÚaddCustomDomain   sB   þþ

þ
ÿ÷
€þîr6   T)Úkw_onlyc                   @   sF  e Zd ZU eed< eed< eed< eed< eed< edB ed< edB ed< dZedB ed	< dZedB ed
< dZedB ed< dZ	edB ed< dZ
edB ed< dZedB ed< dZedB ed< dZedB ed< ejje ej¡dZedB ed< dZedB ed< dZedB ed< ed!defdd„ƒZedefdd„ƒZdd„ Zdd „ ZdS )"ÚShopr   Ú
platformIdÚplatformNameÚplatformShopIdÚappIdNr/   ÚaccessTokenÚrefreshTokenÚ
apiVersionÚ	expiresAtÚ	tokenTypeÚconsumerKeyÚconsumerSecretÚapiKeyÚ	apiSecret)ÚdtÚtimezoneFÚdisabledÚshipstationConnectionTr   c                 C   sX   t  |r	d|› nd|› ¡ ¡ }|jr|  | ¡ ¡S t  d|› ¡ ¡ }|  | ¡ ¡S )NúshopsCredentials/úshops/)r   r(   r   ÚexistsÚ	from_dictÚto_dict)Úclsr   ÚcredentialsÚrefr4   r4   r5   r   G   s   "zShop.getÚuidc                 C   s   t |ƒS ©N)ÚgetUserShops)rO   rR   r4   r4   r5   rT   O   s   zShop.getUserShopsc                 K   s°   t | j| j| jƒ}t ¡ | _|r't d|j	› ¡}|j	| _	|j
|  ¡ dd nt d¡ |  ¡ ¡\}}| d|j	i¡ |j	| _	t d| j	› ¡j
tdi |  ¡ ¤|¤Ždd | S )NrK   T)Úmerger   r   rJ   r4   )ÚgetShopByPlatformIdrR   r9   r;   r   ÚnowÚ	updatedAtr   r(   r   ÚsetrN   r    Úaddr)   Údict)ÚselfÚkwargsÚshoprQ   Ú_r4   r4   r5   ÚsaveR   s   
.z	Shop.savec                 K   sX   t  d| j› ¡ tdi |  ¡ ¤|¤Ž¡ t  d| j› ¡ tdi |  ¡ ¤|¤Ž¡ d S )NrK   rJ   r4   )r   r(   r   r)   r[   rN   )r\   r]   r4   r4   r5   r)   `   s   *.zShop.update)T)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r>   r?   r@   ÚintrA   rB   rC   rD   rE   ÚpytzÚutcÚtznamer   rW   rG   rH   ÚboolrI   r[   Úclassmethodr   rT   r`   r)   r4   r4   r4   r5   r8   2   s2   
 "r8   rR   r9   r;   c                 C   sF   t  d¡ dd|¡ dd|¡ dd| ¡ ¡ }|r!t |d  ¡ ¡S d S )NÚshopsCredentialsr;   ú==r9   rR   r   )r   r    r!   r   r8   rM   rN   )rR   r9   r;   rQ   r4   r4   r5   rV   e   s   ,rV   Fc                 C   s.   t  |rdnd¡ dd| ¡ ¡ }dd„ |D ƒS )Nrl   r   r9   rm   c                 S   ó   g | ]	}t  | ¡ ¡‘qS r4   ©r8   rM   rN   ©Ú.0Údocr4   r4   r5   Ú
<listcomp>k   ó    z(getShopsByPlatformId.<locals>.<listcomp>©r   r    r!   r   )r9   rP   Údocsr4   r4   r5   ÚgetShopsByPlatformIdi   s    rw   r   c                 C   s2   t  d¡ dd| ¡ ¡ }|rdd„ |D ƒd S d S )Nr   r   rm   c                 S   rn   r4   ro   rp   r4   r4   r5   rs   o   rt   z!getPopupStore.<locals>.<listcomp>r   ru   )r   rv   r4   r4   r5   ÚgetPopupStorem   s   rx   c                 C   s&   t  d¡ dd| ¡ ¡ }dd„ |D ƒS )Nrl   rR   rm   c                 S   rn   r4   ro   rp   r4   r4   r5   rs   t   rt   z getUserShops.<locals>.<listcomp>ru   )rR   rv   r4   r4   r5   rT   r   s   rT   c                 C   s4   t  d| › ¡ ¡ }|jr|j tdd¡ d S d S )NrJ   T)rH   )r   r(   r   rL   Ú	referencer)   r[   )r-   rQ   r4   r4   r5   ÚdisableShopv   s   ÿrz   )NFrS   )Údataclassesr   r   rg   r$   Úconfigs.firebaser   r   r   ÚV2.functions.mainr   ÚV2.middlewares.authr   Ú	V2.Paramsr	   r"   r#   r6   r8   rd   rV   rw   rx   rT   rz   r4   r4   r4   r5   Ú<module>   s$    !2