
    ¼_ii                     X    d dl mZmZmZmZ d dlmZmZmZm	Z	m
Z
 d dlmZ  G d d      Zy)    )CoalesceNullIfTrimConcat)QOuterRefSubqueryValue	CharField)Customerc                   "    e Zd ZdZd Zd Zd Zy)CallSearchMixinsearchc           
      F   t         j                  j                  t        d      t        d      d      j	                  d      j                  d      d d }|j                  t        t        d	t        d            t        |      t        d
      t                           S )Nfrom_numbercompanyF)phoner   name__isnull )namer      caller_nameUnknown)output_field)	sort_name)r   objectsfilterr   excludevaluesannotater   r   r
   r	   r   )selfquerysetcustomer_name_subquerys      F/var/www/html/dp2/backend_v2.1/server/apps/calls/mixins/call_search.pywith_sort_namezCallSearchMixin.with_sort_name
   s    !)!1!1!8!8=)Y' "9 "
 'r'
66&>"1	".   }eBi0/0i &[	 ! 
 	
    c                     t        t        t        dt        d            t        d      t        dt        d                        }t        t	        |t        d            t        d            }|j                  |      S )N"transfer_user__profile__first_namer    !transfer_user__profile__last_namer   )sort_advisor_name)r   r   r   r
   r   r    )r!   r"   advisor_full_namer+   s       r$   with_sort_advisor_namez&CallSearchMixin.with_sort_advisor_name   sz     959E#J8%)D"
  %$eBi0)

   / ! 
 	
r&   c                     | j                   j                  j                  | j                        }|s|S |j	                  t        |      t        |      z  t        |      z  t        |      z        S )N)sort_name__icontains)from_number__icontains)call_id__icontains)twilio_call_sid__icontains)requestquery_paramsgetsearch_paramr   r   )r!   r"   r   s      r$   apply_call_searchz!CallSearchMixin.apply_call_search,   sl    **..t/@/@AO6*v./6*+ 623
 	
r&   N)__name__
__module____qualname__r6   r%   r-   r7    r&   r$   r   r      s    L
"
"

r&   r   N)django.db.models.functionsr   r   r   r   django.db.modelsr   r   r	   r
   r   apps.customers.modelsr   r   r;   r&   r$   <module>r?      s    E E D D */
 /
r&   