
    mRi
                     `    d dl mZmZ d dlZd dlmZ  ej                  e      Z G d d      Z	y)    )UserCompanyRoleRoleN)Userc                   |    e Zd Zed        Zed        Zed        Zed        Zed        Zed        Z	ed        Z
y)	UserRepositoryc                  >    t         j                  j                         S )N)r   objectsall     O/var/www/html/dp2/backend_v2.1/server/apps/core/repositories/user_repository.pyget_querysetzUserRepository.get_queryset   s    ||!!r   c                 J    t         j                         j                  |       S )Nactive_companyr   r   getr   s    r   get_user_by_active_companyz)UserRepository.get_user_by_active_company   s&    **,00) 1 
 	
r   c                 f    t         j                         j                  |       j                         S )N)profile__phone_number)r   r   filterfirst)phone_numbers    r   get_user_by_phone_numberz'UserRepository.get_user_by_phone_number   s-    **,33". 4 

%'	r   c                 .    t         j                  | d      S )z7Get all users with Chief Admin role for a given companyzChief Adminr   get_users_by_rolecompanys    r   get_chief_admins_for_companyz+UserRepository.get_chief_admins_for_company   s     //GGr   c                 .    t         j                  | d      S )z;Get all users with Service Manager role for a given companyzService Managerr   r   s    r    get_service_managers_for_companyz/UserRepository.get_service_managers_for_company!   s     //9JKKr   c                    	 t         j                  j                  | |d      j                         }|s't        j                  d| d| j                          g S t        j                  j                  | |d      j                  d      }|D cg c]%  }|j                  j                  s|j                  ' }}|S c c}w # t        $ r=}t        j                  d| d| j                   d	t        |              g cY d
}~S d
}~ww xY w)z6Get all users with a specific role for a given companyT)r   name	is_activez	No role 'z' found for company: )r   roler%   userzError getting users with role 'z' for company z: N)r   r	   r   r   loggerwarningr$   r   select_relatedr'   r%   	Exceptionerrorstr)r   	role_namer&   user_company_rolesucruserses          r   r   z UserRepository.get_users_by_role'   s
   	<<&& '  eg	  9+5J7<<.YZ	!0!8!8!?!? "@ " nV$	  *<R);#sxx?Q?QSXX);ERL S 	LL:9+^T[T`T`SaacdghidjcklmI	s<   AC 5C B>,B>:C >C 	D	2D>D	D	c                 J    t         j                         j                  |       S )N)idr   )user_ids    r   	get_by_idzUserRepository.get_by_idA   s    **,00G0<<r   N)__name__
__module____qualname__staticmethodr   r   r   r    r"   r   r6   r   r   r   r   r   	   s    " " 
 

  
 H H
 L L
  2 = =r   r   )
apps.permissions.modelsr   r   loggingapps.core.modelsr   	getLoggerr7   r(   r   r   r   r   <module>r?      s,    9  ! 
		8	$:= :=r   