o
    zg                     @   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 ddlmZ d dlmZmZ d dl mZ ddlm	Z	 d dlmZ d dlmZ d d	lmZ e Z	G d
d deZG dd deZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZ G dd dejZ!G dd dejZ"G d d! d!ejZ#G d"d# d#ejZ$G d$d% d%ejZ%d&S )'    )serializers   )CityCategoryPlaceAdvertisementBooking	ContactUsUserFavoritePlaceEmergencyNumber
PlaceImageSocialMediaLink)get_translated_field)UserCreateSerializerTokenCreateSerializer)r
   )Token)r   )get_user_modelc                   @   *   e Zd Ze ZG dd dZdd ZdS )CustomTokenCreateSerializerc                   @   s   e Zd ZdZdS )z CustomTokenCreateSerializer.Meta)
auth_tokenuserN)__name__
__module____qualname__fields r   r   8/var/www/newdalilibackend/backend/mainapp/serializers.pyMeta   s    r   c              
   C   s<   |j }|j|j|j|j|j|j|jr|jjnd |j	|j
d	S )N	idusernameemailphone_numberpreferred_languagecityimage
created_at
updated_at)r   r    r!   r"   r#   r$   r%   r&   urlr'   r(   )selfobjr   r   r   r   get_user   s   z$CustomTokenCreateSerializer.get_userN)r   r   r   r   SerializerMethodFieldr   r   r,   r   r   r   r   r      s    r   c                   @   s2   e Zd ZejddZG dd dejZdd ZdS )CustomUserCreateSerializer	get_token)method_namec                   @      e Zd ZeZdZdS )zCustomUserCreateSerializer.Meta)r    r!   passwordr"   r&   r#   r$   r%   r'   r(   tokenNr   r   r   r
   modelr   r   r   r   r   r   (       r   c                 C   s   t jj|d\}}|jS )N)r   )r   objectsget_or_createkey)r*   r   token_instance_r   r   r   r/   ,   s   z$CustomUserCreateSerializer.get_tokenN)	r   r   r   r   r-   r3   r   r   r/   r   r   r   r   r.   %   s    r.   c                   @      e Zd ZG dd dZdS )UserSerializerc                   @      e Zd ZeZg dZdS )zUserSerializer.Metar   Nr4   r   r   r   r   r   2       r   Nr   r   r   r   r   r   r   r   r=   1       r=   c                   @   sJ   e Zd Ze Ze Ze ZG dd dZdd Z	dd Z
dd Zd	S )
AdSerializerc                   @   r>   )zAdSerializer.Meta)r    titler&   text_1text_2link	is_activeexpiry_dater'   r(   r   N)r   r   r   r   r5   r   r   r   r   r   r   >   r?   r   c                 C       | j d j}t|d}t||S )NrequestrC   contextr   r   getattrr*   r+   r   
field_namer   r   r   	get_titleB      

zAdSerializer.get_titlec                 C   rI   )NrJ   rD   rK   rN   r   r   r   
get_text_1G   rQ   zAdSerializer.get_text_1c                 C   rI   )NrJ   rE   rK   rN   r   r   r   
get_text_2L   rQ   zAdSerializer.get_text_2N)r   r   r   r   r-   rC   rD   rE   r   rP   rR   rS   r   r   r   r   rB   8   s    rB   c                   @   r   )CitySerializerc                   @   r>   )zCitySerializer.Meta)r    namer'   r(   N)r   r   r   r   r5   r   r   r   r   r   r   X   r?   r   c                 C   rI   NrJ   rU   rK   rN   r   r   r   get_name\   rQ   zCitySerializer.get_nameNr   r   r   r   r-   rU   r   rW   r   r   r   r   rT   U       rT   c                   @   r   )CategorySerializerc                   @   r>   )zCategorySerializer.Meta)r    rU   r&   r'   r(   N)r   r   r   r   r5   r   r   r   r   r   r   d   r?   r   c                 C   rI   rV   rK   rN   r   r   r   rW   h   rQ   zCategorySerializer.get_nameNrX   r   r   r   r   rZ   a   rY   rZ   c                   @   r<   )PlaceImageSerializerc                   @   r>   )zPlaceImageSerializer.Meta)r    title_artitle_entitle_kur&   r'   r(   N)r   r   r   r   r5   r   r   r   r   r   r   p   r?   r   Nr@   r   r   r   r   r[   o   rA   r[   c                   @   r<   )SocialMediaLinkSerializerc                   @   r>   )zSocialMediaLinkSerializer.Meta)r    	icon_typerF   r'   r(   N)r   r   r   r   r5   r   r   r   r   r   r   u   r?   r   Nr@   r   r   r   r   r_   t   rA   r_   c                   @   sV   e Zd ZeddddZeddddZe Z	e Z
G dd dZdd Zd	d
 ZdS )PlaceSerializerTplaceimage_set)many	read_onlysourcesocialmedialink_setc                   @   r>   )zPlaceSerializer.Meta)r    rU   cover_image	longitudelatituderatingdescriptionmap_linkr'   r(   imagessocial_media_linksN)r   r   r   r   r5   r   r   r   r   r   r      r?   r   c                 C   rI   rV   rK   rN   r   r   r   rW      rQ   zPlaceSerializer.get_namec                 C   rI   )NrJ   rk   rK   rN   r   r   r   get_description   rQ   zPlaceSerializer.get_descriptionN)r   r   r   r[   rm   r_   rn   r   r-   rU   rk   r   rW   ro   r   r   r   r   ra   {   s    ra   c                   @   r<   )BookingSerializerc                   @   r>   )zBookingSerializer.Meta)r    placer   subjectmessager'   r(   N)r   r   r   r   r5   r   r   r   r   r   r      r?   r   Nr@   r   r   r   r   rp      rA   rp   c                   @   r<   )ContactUsSerializerc                   @   r>   )zContactUsSerializer.Meta)r    	user_namer#   r"   rs   is_readr'   r(   N)r   r   r   r	   r5   r   r   r   r   r   r      r?   r   Nr@   r   r   r   r   rt      rA   rt   c                   @   r<   )EmergencyNumberSerializerc                   @   r1   )zEmergencyNumberSerializer.Meta__all__N)r   r   r   r   r5   r   r   r   r   r   r      r6   r   Nr@   r   r   r   r   rw      rA   rw   c                   @   s$   e Zd ZeddZG dd dZdS )FavoritePlaceSerializerT)rd   c                   @   r>   )zFavoritePlaceSerializer.Meta)r    r   r'   r(   rq   Nr   r   r   r   r5   r   r   r   r   r   r      r?   r   N)r   r   r   ra   rq   r   r   r   r   r   ry      s    
ry   c                   @   r<   )FavoritePlaceSerializerCreatec                   @   s   e Zd ZeZdgZdS )z"FavoritePlaceSerializerCreate.Metarq   Nrz   r   r   r   r   r      s    
r   Nr@   r   r   r   r   r{      rA   r{   N)&rest_frameworkr   modelsr   r   r   r   r   r	   r
   r   r   r   r   utilsr   djoser.serializersr   r   rest_framework.authtoken.modelsr   django.contrib.authr   r   r.   ModelSerializerr=   rB   rT   rZ   r[   r_   ra   rp   rt   rw   ry   r{   r   r   r   r   <module>   s0   4