a
     ld                     @   s   d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZ G dd dejZG dd dejZd	S )
    )models)AvgCaseCountExpressionWrapperF
FloatFieldIntegerFieldOuterRefQSubquerySumWhen)Coalesce)Platformc                   @   s   e Zd Zdd Zdd ZdS )CompanyQuerySetc                 C   s~   | j jjttdttjjdddddj	t
dd}td	ttjjd
dd}tdtd }| jt|dt d||dS )NZreview_sources__reviews_countF) review_sources__platform__statusZ%review_sources__reviews_count__isnull)filterr   )cal_reviews_count_user_setpk)r   review_sources__reviews__ratingTr   cal_reviews_count_isnulloutput_field)r   r   cal_reviews_count)modelobjectsannotater   r   r   r   StatusACTIVEr   r
   r   r   r   valuesr	   )selfr   r   r    r"   A/var/www/html/Ranjet/backend/verify_trusted/companies/managers.pywith_reviews_count   s@    z"CompanyQuerySet.with_reviews_countc              	   C   s   t dttjjdddd}tdttjjddddd}t d	ttjjdddd}tdttjjdddd}ttdtd
dtdt	td
td tdtd  tdtd  t
 ddtdt
 d}| j|||||dS )NZreview_sources__average_ratingF)r   &review_sources__average_rating__isnullT)r   distinctZreview_sourcesr   )r   r%   Z!review_sources__reviews_count__gtr   cal_average_rating_user_set)Z!cal_average_rating_isnull__isnullthencount_average_rating_user_setcal_average_rating_isnullcount_average_rating_isnullr   )Z#cal_average_rating_user_set__isnullr(   )defaultr   )r'   r)   r*   r+   cal_average_rating)r   r   r   r   r   r   r   r   r   r   r   r   )r!   r'   r)   r*   r+   r-   r"   r"   r#   with_avg_rating<   s    	
zCompanyQuerySet.with_avg_ratingN)__name__
__module____qualname__r$   r.   r"   r"   r"   r#   r      s   $r   c                   @   s   e Zd Zdd ZdS )CompanyManagerc                 C   s   d S )Nr"   )r!   r"   r"   r#   manager_only_method   s    z"CompanyManager.manager_only_methodN)r/   r0   r1   r3   r"   r"   r"   r#   r2      s   r2   N)	django.dbr   django.db.modelsr   r   r   r   r   r   r	   r
   r   r   r   r   django.db.models.functionsr   Zverify_trusted.reviews.modelsr   QuerySetr   Managerr2   r"   r"   r"   r#   <module>   s
   8n