
    ?{i                     T    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Z
defd	Zy)    )AbstractBaseUser)ValidationError)Company)UserCompanyRole)UserCompanyRoleRepositoryNc                    	 t        j                  | d      }|r| j                  r| j                  n|d   j                  }t        j                  | |d      j	                         }|s|d   }t
        j                  j                  | d      j                  d       d|_	        |j                  dg	       | j                  s|| _        | j                  d
g	       y y y # t        $ r}dd| id }~ww xY w)NTuser	is_activer   )r
   companyr   )r
   
is_defaultF)r   r   )update_fieldsactive_companydetailz+Got Exception while setting active company )r   get_memberships_querysetr   r   firstr   objectsfilterupdater   saver   )r
   membershipsr   default_membershipexcs        ^/var/www/html/dp2/backend_v2.1/server/apps/permissions/services/set_active_company_services.pyset_active_companyr   	   s   #
/HH

 '+':':## ^++ 
 ";!S!S&" eg	  &%0^"##** +  ff&,0)##<.#A&&&4#		)9(:	; '/ 4  
DSEJ
 	

s   CC# #	C8,C33C8r
   c                     t         j                  j                  | d      j                  dd      }| j                  j                  t        j                  j                  |             y )NTr	   
company_id)flat)id__in)r   r   r   values_list	companiessetr   )r
   role_company_idss     r   sync_companiesr$   0   s`    &..55 6  k,Tk* 
 	NN&67    )N)django.contrib.auth.base_userr   rest_framework.exceptionsr   apps.companies.modelsr   apps.permissions.modelsr   apps.permissions.repositoriesr   r   r$    r%   r   <module>r,      s'    : 5 ) 3 C$
N) r%   