o
    6k~i                     @   s   d dl mZmZmZ d dl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mZ d dlmZ G dd dejZdS )    )viewsetsstatusfilters)action)Response)IsAuthenticatedOrReadOnlyIsAuthenticated)DjangoFilterBackend)timezone   )OfferOfferSerializer)IsPlaceAdminIsPlaceOwner)StandardResultsSetPaginationc                       sn   e Zd ZdZegZeZee	j
e	jgZddgZddgZg dZdgZdd	 Zd
d Z fddZdd Z  ZS )OfferViewSetzOffer ViewSetplace	is_activetitledescription)
start_dateend_date
created_atz-start_datec                 C   s   t S )Nr   self r   1/var/www/newdalilibackend/backend/offers/views.pyget_serializer_class   s   z!OfferViewSet.get_serializer_classc                 C   sT   t jd }| jdkrt }|jd||d}| jj	
d}|r(|j|d}|S )Nr   listT)r   start_date__lteend_date__gte)place_id)r   objectsselect_relatedallr   r
   nowfilterrequestquery_paramsget)r   querysetr&   r"   r   r   r   get_queryset   s   
zOfferViewSet.get_querysetc                    s    | j dv rt t gS t  S )N)createupdatepartial_updatedestroy)r   r   r   superget_permissionsr   	__class__r   r   r2   -   s   

zOfferViewSet.get_permissionsc                 C   s8   | j j}|jdkrt|dr|j|jjd d S td)Nplace_adminplace_admin_profile)r   z#Only place admins can create offers)r(   userrolehasattrsaver6   r   PermissionError)r   
serializerr7   r   r   r   perform_create2   s   zOfferViewSet.perform_create)__name__
__module____qualname____doc__r   permission_classesr   pagination_classr	   r   SearchFilterOrderingFilterfilter_backendsfilterset_fieldssearch_fieldsordering_fieldsorderingr   r,   r2   r=   __classcell__r   r   r3   r   r      s    r   N)rest_frameworkr   r   r   rest_framework.decoratorsr   rest_framework.responser   rest_framework.permissionsr   r   django_filters.rest_frameworkr	   django.utilsr
   modelsr   serializersr   common.permissionsr   r   common.paginationr   ModelViewSetr   r   r   r   r   <module>   s    