
    uni                     2    d dl mZ d dlmZ  G d de      Zy)    )UserCompanyRole)BaseRepositoryc                   l    e Zd ZeZd Zd Ze	 	 	 	 	 	 dd       Zed        Z	ed	d       Z
ed        Zy)
UserCompanyRoleRepositoryc                 D    | j                         j                  |d      S )NF)userrole__isnull)get_querysetfilterselfr   s     X/var/www/html/dp2/backend_v2.1/server/apps/permissions/repositories/user_company_role.pyget_user_company_rolez/UserCompanyRoleRepository.get_user_company_role   s)      ")) * 
 	
    c                 @    | j                  |      j                         S )N)r   existsr   s     r   has_rolez"UserCompanyRoleRepository.has_role   s    ))$/6688r   Nc                 *   t               }|j                         }| r|j                  |       }|r|j                  |      }|r|j                  |      }|r|j                  |      }|r|j                  |      }|r|j                  |      }|S )Nr   company)	is_active)is_available)
is_default)is_owner)r   r
   r   )r   r   r   r   r   r   repoqss           r   get_memberships_querysetz2UserCompanyRoleRepository.get_memberships_queryset   s     )* %B7+BY/B5Bj1BH-B	r   c                  D    t         j                  j                  dd      S )z+
        Return active memberships
        T)r   user__is_active)r   objectsr    r   r   get_active_membershipsz0UserCompanyRoleRepository.get_active_memberships1   s(    
 &&--  . 
 	
r   c                 ~    t         j                         }| r|j                  |       }|r|j                  |      }|S )z^
        Return active memberships.
        Optionally filter by user or/and company.
        r   r   r   r#   r   )r   r   r   s      r   get_membershipsz)UserCompanyRoleRepository.get_memberships;   s=     '==?%B7+B	r   c                 J    t         j                         j                  |       S )z:
        Return active memberships for a company.
        r   r%   r   s    r   get_company_membershipsz1UserCompanyRoleRepository.get_company_membershipsK   s)    
 )??AHH I 
 	
r   )NNNNNN)NN)__name__
__module____qualname__r   modelr   r   staticmethodr   r#   r&   r(   r"   r   r   r   r      ss    E
9  > 
 
   
 
r   r   N)apps.permissions.modelsr   apps.userprofile.repositoriesr   r   r"   r   r   <module>r0      s    3 8M
 M
r   