o
    xh7                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlT d dl	T d dl
Z
G dd deZG dd	 d	eZG d
d deZG dd deZG dd deZG dd deZdS )    N)JsonResponse)View)Image)*c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )UpdateDepartmentVisibilityc           
      C   s   d}d}|d urW|}d}|d urWd}t jj|d}|jdd}| | kr)d}|dkrS|D ]}	d|	_|	  |d }q/|| krKd}d}||fS d}d	}||fS d}d
}||fS )NFzRequired a Numberr   Zid__gteT	isVisible   All records have been updated!Not All records have been updated#All the records are already updated)
Departmentobjectsfilter__len__r	   save)
selfstartDepartmentId	isSuccessmessageidisSameLengthcountselectedListtempListselected r   s/Users/waleedhassanin/Documents/GitHub/snow_flake_back_end_deploy/snow_flake_api/snow_flake_bulk_operation/views.pyapplyDepartmentVisibility   s4   
z4UpdateDepartmentVisibility.applyDepartmentVisibilityc                 C   l   d}d}t jjdd t jjd d}d}|D ]	}|| | }qt jjdd }||kr1d}d}|||fS )NFzSub departments not Popular)	isPopulardepartmentIdr   TzSub departments are Popular now)r   r   updater   updatePopularr   )r   isSuccessPopularmessagePopularmainDepartmentListpopularCountir   r   r   r   applyDepartmentPopular,   s   
z1UpdateDepartmentVisibility.applyDepartmentPopularc                 C   s\   t jj|jd}d}| dkr|D ]	}|| | }q|S d|_d|_|  |d }|S )Nr"   r   Tr
   )	r   r   r   r   r   r%   r!   isUseItemImageLinkr   )r   mainDepartmentsubDepartmentListr   r*   r   r   r   r%   >   s   z(UpdateDepartmentVisibility.updatePopularc                 C   r    )NFzSub departments not Selected)
isSelectedr"   r   Tz Sub departments are Selected now)r   r   r$   r   updateSelectedr   )r   isSuccessSelectedmessageSelectedr(   selectedCountr*   r   r   r   r   applyDepartmentSelectedK   s   
z2UpdateDepartmentVisibility.applyDepartmentSelectedc                 C   sV   t jj|jdd}d}| dkr|| |d  }|S d|_|  |d }|S )Nr"   z-createdDater   Tr
   )	r   r   r   r   order_byr   r0   r/   r   )r   r-   r.   r   r   r   r   r0   \   s   z)UpdateDepartmentVisibility.updateSelectedc                 O   sv   d }t |j}| dkrd|v r|d }| |\}}|  \}}	}
|  \}}}t|||||	|
|||d	ddS )Nr   r   )	r   r   r   r&   r'   r)   r1   r2   r3   Fsafe)jsonloadsbodyr   r   r+   r4   r   )r   requestargskwargsr   jsonDatar   r   r&   r'   r)   r1   r2   r3   r   r   r   postg   s*   zUpdateDepartmentVisibility.postN)	__name__
__module____qualname__r   r+   r%   r4   r0   r?   r   r   r   r   r      s    r   c                   @      e Zd Zdd ZdS )UpdateBrandVisibilityc                 O   s   d }t |j}| dkrd|v r|d }|d urv|}d}|d urvd}tjj|d}	|	jdd}
|
 |	 kr;d}|dkrl|	D ]}d|_d|_|	  |d }qA||	 krbt
|ddd	dd
S t
|ddd	dd
S t
|ddd	dd
S t
|ddd	dd
S )Nr   startBrandIdFr   Tr   r
   r   )rE   r   r   r6   r   r   zInvalid Number)r8   r9   r:   r   Brandr   r   r	   r,   r   r   )r   r;   r<   r=   rE   r>   r   r   r   r   r   r   r   r   r   r?      sb   
			zUpdateBrandVisibility.postNr@   rA   rB   r?   r   r   r   r   rD          rD   c                   @   rC   )BulkResetSKUc                 O   sJ   t j jdd}t j }d}d}||krd}d}t||||dddS )	Nr   )amountFzNot All records have been resetTzAll records have been reset)r   totalUpdatedRecordtotalRecordsr   r6   )SKUr   allr$   r   r   )r   r;   r<   r=   rK   rL   r   r   r   r   r   r?      s   
zBulkResetSKU.postNrG   r   r   r   r   rI      rH   rI   c                   @   rC   )SetDiscountc           
      O   s   t |j}d}d}|d D ]1}|d }|d }	|dkr,tjjddjddj|	d	}q|d
kr?tjjddjddj|	d	}qtd||dddS )Nr   ZdiscountListnamediscountZtopProductsT)itemId__isApproved)itemId__isTop)rQ   ZfavoriteProducts)itemId__isFavorite)r   totalTopSKUstotalFavoriteSKUsFr6   )r8   r9   r:   rM   r   r   r$   r   )
r   r;   r<   r=   r>   rU   rV   xrP   ZdiscountValr   r   r   r?      s8   zSetDiscount.postNrG   r   r   r   r   rO      rH   rO   c                   @   rC   )BulkUpdateProductSelectionc                 O   sV   t jjdddddd tjjdddddd t j }t|d }tdddddS )NF)isTop
isFavoriteisMostDiscountisMostViewedisNewArrival   ZSuccessr   r   r6   )Itemr   r$   rM   r   mathfloorr   )r   r;   r<   r=   r   Z
splitCountr   r   r   r?      s   
=zBulkUpdateProductSelection.postNrG   r   r   r   r   rX      s    rX   c                   @   s   e Zd Zdd Zdd ZdS )DownloadSKUImageViewc           
      C   s   | d}g }d}| dkr |d  d}| dkr |d }d}|dd D ]}|| d }q(|dkrm|| d }t|}d}|d}|jd	v ret|jd d |j|}	|	||  d  |	}|d
	| |S )N/ r   .z.jpg)   rh   rh   RGBA)ri   LARGB)
splitr   r   openconvertmodenewsizepaster   )
r   	imagePathZpathListZ
newNamList	imageNamenewPathpimZ
fill_color
backgroundr   r   r   changeBackgroundI  s*   



z%DownloadSKUImageView.changeBackgroundc                 O   s   d }t |j}| dkrd|v r|d }|d ur^|}tjj|d}|d ur^|jj}| 	|}	t
|	d}
t|
 }W d    n1 sGw   Y  t|	 t|ddddd	d
S td	ddd	d
S )Nr   skuId)r   rbzutf-8Tzimage is downloaded)imager   r   Fr6   r_   )r8   r9   r:   r   rM   r   getr|   pathry   rm   base64	b64encodereadosremover   decode)r   r;   r<   r=   rz   r>   r   selectedSKUrs   ru   Zimg_fileZ	my_stringr   r   r   r?   e  s8   

zDownloadSKUImageView.postN)r@   rA   rB   ry   r?   r   r   r   r   rc   G  s    rc   )r   r8   django.httpr   django.viewsr   PILr   snow_flake.modelsdjango.db.modelsra   r   rD   rI   rO   rX   rc   r   r   r   r   <module>   s    z? O