o
    %i	                     @   sn   d dl 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G d	d
 d
eZ	G dd dejZ
dS )    )serializers)User   )Seniorc                   @   s   e Zd ZdZG dd dZdS )UserSerializerzSerializer for User modelc                   @      e Zd ZeZg dZdS )zUserSerializer.Meta)idusername
first_name	last_nameemailN)__name__
__module____qualname__r   modelfields r   r   ,/var/www/html/philips/seniors/serializers.pyMeta	       r   N)r   r   r   __doc__r   r   r   r   r   r      s    r   c                   @   s8   e Zd ZdZeddZe Ze Z	G dd dZ
dS )SeniorSerializerzSerializer for Senior modelT)	read_onlyc                   @   s    e Zd ZeZg dZg dZdS )zSeniorSerializer.Meta)r   namephone_numberagetimezonecompanion_namefirst_messagepreferred_call_times	interestshealth_notes	caregiver	is_active
created_at
updated_attotal_callslast_call_date)r   r$   r%   N)r   r   r   r   r   r   read_only_fieldsr   r   r   r   r      s    r   N)r   r   r   r   r   r"   r   ReadOnlyFieldr&   r'   r   r   r   r   r   r      s    
r   c                   @   s*   e Zd ZdZe ZG dd dejZdS )SeniorDetailSerializerz>Detailed serializer for Senior model with conversation summaryc                   @   s   e Zd Zejjdg ZdS )zSeniorDetailSerializer.Metaconversation_summaryN)r   r   r   r   r   r   r   r   r   r   r   &   s    r   N)	r   r   r   r   r   r)   r+   r   r   r   r   r   r   r*   !   s    r*   c                   @   s.   e Zd ZdZG dd dZdd Zdd ZdS )	SeniorCreateSerializerz(Serializer for creating Senior instancesc                   @   r   )zSeniorCreateSerializer.Meta)	r   r   r   r   r   r   r   r    r!   N)r   r   r   r   r   r   r   r   r   r   r   -   r   r   c                 C   s   | ds
td|S )zValidate phone number format+z:Phone number must include country code (e.g., +1234567890))
startswithr   ValidationError)selfvaluer   r   r   validate_phone_number5   s
   
z,SeniorCreateSerializer.validate_phone_numberc              	   C   s:   g d}|D ]}||vrt d| dd| q|S )zValidate preferred call times)morning	afternooneveninganytimezInvalid call time: z. Must be one of: z, )r   r/   join)r0   r1   valid_timestimer   r   r   validate_preferred_call_times=   s   z4SeniorCreateSerializer.validate_preferred_call_timesN)r   r   r   r   r   r2   r:   r   r   r   r   r,   *   s
    r,   N)rest_frameworkr   django.contrib.auth.modelsr   modelsr   ModelSerializerr   r   r*   r,   r   r   r   r   <module>   s    	