B
    b                 @   s0  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
 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mZ d dlmZ G dd dejZG dd dejZG dd deejejZG dd dejZ G dd deejejZ!G dd dejZ"G dd deejejZ#dS )    )mixinsserializers)status)Response)viewsets)TempUser)
Membership)get_system_setting)MyUser)APPCustomizeResponseModelMixin)Company)cloud_create_companycreate_admin_membershipsend_encrypt_email)gettext_lazyc               @   s   e Zd ZG dd dZdS )CompanyListSerializerc               @   s   e Zd ZeZdZdS )zCompanyListSerializer.Meta__all__N)__name__
__module____qualname__r   modelfields r   r   JG:\easytimepro\master/mysite/mobile\api_rest\views\view_company_details.pyMeta   s   r   N)r   r   r   r   r   r   r   r   r      s   r   c               @   s"   e Zd Ze ZG dd dZdS )CompanyCreateSerializerc               @   s   e Zd ZeZdZdS )zCompanyCreateSerializer.Meta)company_nameN)r   r   r   r   r   r   r   r   r   r   r      s   r   N)r   r   r   r   	CharFieldr   r   r   r   r   r   r      s   r   c               @   s8   e Zd ZdeiZeZdd Zdd Zdd Z	dd	 Z
d
S )CompanylLogViewcreatec             C   s   | j jj}tjj|d}|S )N)company)requestuser
company_idr   objectsfilter)selfr#   querysetr   r   r   get_queryset$   s    
zCompanylLogView.get_querysetc             C   s   | j | jd S )N)serializer_class_dictgetaction)r&   r   r   r   get_serializer_class)   s    z$CompanylLogView.get_serializer_classc       	      O   s   | j |jd}|jdd |j}tjj|jd}| ||j	}t
|trL|S t||d }t|d|d dd	|d i}t|tjd
S )N)dataT)raise_exception)idr      )r    msgzSucessfully created {0} Company)r   )get_serializerr-   is_validr"   r
   r$   r*   r/   company_create_checkZvalidated_data
isinstancer   r   r   formatr   HTTP_200_OK)	r&   r!   argskwargs
serializercurrent_userdatasr    resultr   r   r   r   ,   s    
zCompanylLogView.createc       	      C   sz   dd l }|d }|d}|||sDtd}d|i}t|tjdS tjj	|d}|
 rvdd|i}t|tjdS |S )	Nr   r   z^[A-Za-z0-9-]+$Z)company_name_should_be_letters_or_numbersr1   )r   )name__iexactz)Company with this name {0} exist already.)recompilematch_r   r   HTTP_406_NOT_ACCEPTABLEr   r$   r%   existsr6   )	r&   r!   r<   r?   r   Zcompany_name_rer1   r=   Ztmp_companyr   r   r   r4   ;   s    
z$CompanylLogView.company_create_checkN)r   r   r   r   r)   r   r   r(   r,   r   r4   r   r   r   r   r      s   r   c               @   s"   e Zd Ze ZG dd dZdS )JoinCompanySerializerc               @   s   e Zd ZeZdZdS )zJoinCompanySerializer.Meta)r   N)r   r   r   r   r   r   r   r   r   r   r   Q   s   r   N)r   r   r   r   r   r   r   r   r   r   r   rE   O   s   rE   c               @   s0   e Zd ZdeiZeZdd Zdd Zdd Z	dS )	JoinCompanyr   c             C   s   | j jj}tjj|d}|S )N)r    )r!   r"   r#   r   r$   r%   )r&   r#   r'   r   r   r   r(   \   s    
zJoinCompany.get_querysetc             C   s   | j | jd S )N)r)   r*   r+   )r&   r   r   r   r,   a   s    z JoinCompany.get_serializer_classc             O   sB  | j |jd}|jdd |j}tjj|jd}|j}|d }tjj	|d}|
 srtd}	d|	i}
t|
tjd	S |d
 }tjj	||d}|
 rtd}	d|	i}
t|
tjd	S tdt|j}|std}	d|	i}
t|
tjd	S tjj	|j|d}|
 r|d
 }nt|j|d}|  t||j| ddi}
t|
tjd	S )N)r-   T)r.   )r/   r   )r>   company_does_not_existr1   )r   r   )r"   r    you_are_belong_to_the_companyemail_setting*this_company_not_yet_set_the_email_setting)email__iexactr   )emailr   Z
sucessfull)r2   r-   r3   r"   r
   r$   r*   r/   r   r%   rD   rB   r   r   rC   r   r	   strr   rL   saver   r7   )r&   r!   r8   r9   r:   r;   r<   r   r    r1   r-   matched_membershiprI   	temp_userr   r   r   r   d   s<    

zJoinCompany.createN)
r   r   r   rE   r)   r   r   r(   r,   r   r   r   r   r   rF   U   s
   rF   c               @   s:   e Zd Ze Ze Ze Ze ZG dd dZ	dS )JoinVendorSerializerc               @   s   e Zd ZeZdZdS )zJoinVendorSerializer.Meta)r   vendor_name
vendor_cnrvendor_phoneN)r   r   r   r   r   r   r   r   r   r   r      s   r   N)
r   r   r   r   r   r   rR   rS   rT   r   r   r   r   r   rQ      s
   rQ   c               @   s0   e Zd ZdeiZeZdd Zdd Zdd Z	dS )	
JoinVendorr   c             C   s   | j jj}tjj|d}|S )N)r    )r!   r"   r#   r   r$   r%   )r&   r#   r'   r   r   r   r(      s    
zJoinVendor.get_querysetc             C   s   | j | jd S )N)r)   r*   r+   )r&   r   r   r   r,      s    zJoinVendor.get_serializer_classc          	   O   sd  | j |jd}|jdd |j}tjj|jd}|j}|d }|d }|d }	|d }
tjj	|d	}|
 std
}d|i}t|tjdS |d }tjj	||d}|
 rtd}d|i}t|tjdS tdt|j}|std}d|i}t|tjdS tjj	|j|d}|
 r |d }nt|j|d}|  t||j|d||
|	d ddi}t|tjdS )N)r-   T)r.   )r/   r   rR   rS   rT   )r>   rG   r1   )r   r   )r"   r    rH   rI   rJ   )rK   r   )rL   r      )ZrolerR   rT   rS   Z
Sucessfull)r2   r-   r3   r"   r
   r$   r*   r/   r   r%   rD   rB   r   r   rC   r   r	   rM   r   rL   rN   r   r7   )r&   r!   r8   r9   r:   r;   r<   r   rR   rS   rT   r    r1   r-   rO   rI   rP   r   r   r   r      sD    


zJoinVendor.createN)
r   r   r   rQ   r)   r   r   r(   r,   r   r   r   r   r   rU      s
   rU   N)$Zrest_frameworkr   r   r   Zrest_framework.responser   Zmysite.mobile.api_restr   Zmysite.base.modelsr   r   Zmysite.utilsr	   Zmysite.accounts.modelsr
   Z(mysite.mobile.api_rest.app_customize_mixr   Zmysite.cloud.modelsr   Zmysite.accounts.urlsr   r   r   Zdjango.utils.translationr   rB   ZModelSerializerr   r   ZCreateModelMixinZGenericViewSetr   rE   rF   rQ   rU   r   r   r   r   <module>   s0   20	