
    .i                        d dl Z d dlmZ d dlmZ d dlmZ ddlmZm	Z	m
Z
mZ  ej                  e       G d dej                               Z ej                  e	       G d	 d
ej                               Z ej                  e
       G d dej                               Z ej                  e       G d dej                               Zy)    N)admin)	mark_safe)format_html   )AppointmentWebhookEventFeatureFlagOutboundMessagec                   *    e Zd Zg dZg dZddgZdgZy)AppointmentAdmin)nameidcompanyscheduled_datebooking_typeofftimeappointment_phone)r   r   r   user__usernamecompany__namez-scheduled_dateN)__name__
__module____qualname__list_displaylist_filtersearch_fieldsordering     @/var/www/html/dp2/backend_v2.1/server/apps/appointments/admin.pyr   r   	   s    nL:K%7M!"Hr   r   c                   .    e Zd Zg dZdZddgZddgZdgZy)WebhookEventAdmin)source
event_typesuccessreceived_at)	r"   r#   r$   headersraw_payload	processedprocessed_atr%   error_messager#   r%   r   z-received_atN)r   r   r   r   readonly_fieldsr   r   r   r   r   r   r!   r!      s,    EL
O  /K<(MHr   r!   c                       e Zd ZdZdZy)FeatureFlagAdmin)keyenabled)r/   N)r   r   r   r   list_editabler   r   r   r-   r-   $   s    %L Mr   r-   c                        e Zd ZdZdZdZdZdZdZdZ	dd	d
ifddddfddddfdd	difddddffZ
d Zde_        d Zde_        d Zd Zde_        d Zd dZd dZ fdZ xZS )!OutboundMessageAdminzt
    Enterprise-grade read-only audit admin for outbound communications.
    Fully immutable and non-deletable.
    )r   channeltostatus_badgeprovider_message_id
created_atsent_atdelivered_at)r3   statusr7   r8   r9   )r   r4   subjectr6   twilio_call_sidretell_call_idr*   )z-created_atr7   )r   r3   r4   r;   template_namecontext_prettymessage_payload_prettyr6   r<   r=   r:   r*   r7   r8   r9   z
Basic Infofields)r   r3   r:   r4   r;   zTemplate & Payload)collapse)r>   r?   r@   )classesrA   zProvider Details)r6   r<   r=   
Timestamps)r7   r8   r9   Errors)r*   c                 8    | j                  |j                        S N)_pretty_jsoncontextselfobjs     r   r?   z#OutboundMessageAdmin.context_pretty   s      --r   zContext (JSON)c                 8    | j                  |j                        S rG   )rH   message_payloadrJ   s     r   r@   z+OutboundMessageAdmin.message_payload_pretty   s      !4!455r   zMessage Payload (JSON)c                 V    |syt        j                  |dd      }t        d| d      S )N-   T)indent	sort_keyszU<pre style='max-height:400px;overflow:auto;background:#111;color:#0f0;padding:10px;'>z</pre>)jsondumpsr   )rK   data	formatteds      r   rH   z!OutboundMessageAdmin._pretty_json   s6    JJtA>	cdmcnntu
 	
r   c                     ddddd}|j                  |j                  d      }|j                  j                         }t        d||      S )	Nz#f59e0bz#3b82f6z#10b981z#ef4444)pendingsent	deliveredfailedz#6b7280z_<span style="color:white;background:{color};padding:4px 8px;border-radius:6px;">{status}</span>)colorr:   )getr:   upperr   )rK   rL   colorsr]   status_texts        r   r5   z!OutboundMessageAdmin.status_badge   sS     "	
 

3::y1jj&&(m
 	
r   Statusc                      yNFr   )rK   requests     r   has_add_permissionz'OutboundMessageAdmin.has_add_permission       r   c                      yrd   r   rK   re   rL   s      r   has_delete_permissionz*OutboundMessageAdmin.has_delete_permission   rg   r   c                 "    |j                   dv ryy)N)GETHEADTF)methodri   s      r   has_change_permissionz*OutboundMessageAdmin.has_change_permission   s    >>_,r   c                 4    t         |   |      }d|v r|d= |S )Ndelete_selected)superget_actions)rK   re   actions	__class__s      r   rs   z OutboundMessageAdmin.get_actions   s(    '%g.')*r   rG   )r   r   r   __doc__r   r   r   r   date_hierarchyr+   	fieldsetsr?   short_descriptionr@   rH   r5   rf   rj   ro   rs   __classcell__)ru   s   @r   r2   r2   *   s    	LKM  H!NO( 
 
 	 
$ 
 	 
$
 	 
 
 	 
$(
 	C%IP. (8N$6 0H,

 &.L" r   r2   )rT   django.contribr   django.utils.safestringr   django.utils.htmlr   modelsr   r   r	   r
   register
ModelAdminr   r!   r-   r2   r   r   r   <module>r      s       - ) K K #u'' # #  ((    $ !u'' ! !
  Y5++ Y !Yr   