
    Bij                         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	 d dl
mZmZ d dlmZ d dlmZ  G d	 d
ej"                        Zy)    )viewsets)IsAuthenticated)IntegrityError)ValidationError)DealershipDepartment)DealershipDepartmentSerializer$DealershipDepartmentCreateSerializer)CompanyPermission)LimitOffsetPaginationc                        e Zd ZdZej
                  j                         j                  d      Ze	Z
d Z fdZd Zd Zd Zd Zd	 Z xZS )
DealershipDepartmentViewSetzQ
    API endpoint that allows dealership departments to be viewed or edited.
    z-created_atc                     | j                   dv rt               t        d      gS | j                   dv rt               t        d      gS t               t        d      gS )N)create#dealership_group_create_departments)updatepartial_updatedestroy!dealership_group_edit_departments!dealership_group_view_departments)actionr   r
   selfs    S/var/www/html/dp2/backend_v2.1/server/apps/companies/views/dealership_department.pyget_permissionsz+DealershipDepartmentViewSet.get_permissions   sj    ;;*$!!"GH  [[CC!!"EF 
 AB
 	
    c                     t         |          }| j                  j                  j	                  d      }|r|j                  |      }|S )Ndealership_id)r   )superget_querysetrequestquery_paramsgetfilter)r   querysetr   	__class__s      r   r   z(DealershipDepartmentViewSet.get_queryset&   sB    7')1155oF]CHr   c                 6    | j                   dv rt        S t        S )N)r   r   r   )r   r	   r   r   s    r   get_serializer_classz0DealershipDepartmentViewSet.get_serializer_class/   s    ;;@@77--r   c                 Z    	 |j                          y # t        $ r t        ddi      w xY w)NdetailzDuplicate entry detected.)saver   r   r   
serializers     r   _savez!DealershipDepartmentViewSet._save4   s4    	KOO 	K!8-H"IJJ	Ks    *c                 &    | j                  |       y Nr-   r+   s     r   perform_createz*DealershipDepartmentViewSet.perform_create:       

:r   c                 &    | j                  |       y r/   r0   r+   s     r   perform_updatez*DealershipDepartmentViewSet.perform_update=   r2   r   c                 $    |j                          y r/   )delete)r   instances     r   perform_destroyz+DealershipDepartmentViewSet.perform_destroy@   s    r   )__name__
__module____qualname____doc__r   objectsallorder_byr$   r   pagination_classr   r   r'   r-   r1   r4   r8   __classcell__)r%   s   @r   r   r      sS     $++//1::=IH,
 .
Kr   r   N)rest_frameworkr   rest_framework.permissionsr   	django.dbr   rest_framework.exceptionsr   apps.companies.modelsr   apps.companies.serializersr   r	   apps.permissions.permissionsr
   utils.paginationsr   ModelViewSetr    r   r   <module>rL      s3    # 6 $ 5 6 ; 32("7"7 2r   