o
    /yfb	  ã                   @   sj   d dl mZ 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jƒZ
dS )é    )Úmodels)Ú
CustomUser)Útimezone)Úfile_upload_pathc                   @   s†   e Zd ZdZejdd�Ze ¡ Zej	ddddd�Z
ej	ddddd�Zej	ddddd�Zej	ddddd�Zejed	ddd
�Zdd„ ZdS )ÚVehicleTypezT
    Model to store vehicle types along with seating capacity and fare details.
    é2   )Ú
max_lengthé   é   T)Ú
max_digitsÚdecimal_placesÚnullÚblanké   údefault.jpeg©Ú	upload_toÚdefaultr   r   c                 C   s   | j S )N)Úvehicle_type©Úself© r   ú'/var/www/html/loop/vehiclehub/models.pyÚ__str__   s   zVehicleType.__str__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	CharFieldr   ÚPositiveIntegerFieldÚseating_capacityÚDecimalFieldÚ	base_fareÚper_km_chargeÚshared_percentÚfare_per_km_per_seatÚ
ImageFieldr   Úvehicletype_modelr   r   r   r   r   r      s    r   c                   @   sd   e Zd ZdZejeejd�Zej	dd�Z
ejddd�Zejedddd	�Zd
d„ Zdd„ Zdd„ ZdS )ÚVehiclez1
    Model to represent individual vehicles.
    )Ú	on_deleteF©r   é
   T)r   Úuniquer   r   c                 C   s   | j › d| j› �S )Nz - )r   Úplate_numberr   r   r   r   r   !   s   zVehicle.__str__c                 C   s$   d| _ |  ¡  tjj|| dd� d S )NT)ÚdriverÚvehicleÚactive)ÚstatusÚsaveÚVehicleAssignmentÚobjectsÚcreate)r   r.   r   r   r   Ú
set_active$   s   zVehicle.set_activec                 C   s0   d| _ |  ¡  tjj| dd�jdt ¡ d� d S )NFT)r/   r0   )r0   Úreleased_at)r1   r2   r3   r4   ÚfilterÚupdater   Únowr   r   r   r   Úset_inactive)   s   "zVehicle.set_inactiveN)r   r   r   r   r   Ú
ForeignKeyr   ÚCASCADEr   ÚBooleanFieldr1   r   r-   r&   r   Úvehicle_picr   r6   r;   r   r   r   r   r(      s    r(   c                   @   sj   e Zd Zejeejdd�Zejeejdd�Z	ej
dd�Zejdd�Zejddd�Zej
dd�Zd	d
„ ZdS )r3   Úassigned_vehicles)r)   Úrelated_nameÚassignmentsFr*   T)Úauto_now_add)r   r   c                 C   s   | j j› d| jj› �S )Nz assigned to )r/   r-   r.   Úmobile_numberr   r   r   r   r   8   s   zVehicleAssignment.__str__N)r   r   r   r   r<   r   r=   r.   r(   r/   r>   r0   ÚDateTimeFieldÚassigned_atr7   Úon_rider   r   r   r   r   r3   0   s    r3   N)Ú	django.dbr   Úaccounts.modelsr   Údjango.utilsr   r   ÚModelr   r(   r3   r   r   r   r   Ú<module>   s    