
    f)!                        d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
Z
 G d dej                        Z G d dej                        Z G d	 d
ej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Zy)    )models)
CustomUserDevice)VehicleTypeVehicleNc                   |    e Zd Z ej                  d      Z ej                         Z ej                         Zd Z	y)Locationd   
max_lengthc                     | j                   S Nnameselfs    6C:\Users\user\Documents\project_loop\booking\models.py__str__zLocation.__str__       yy    N)
__name__
__module____qualname__r   	CharFieldr   
FloatFieldlatitude	longituder    r   r   r	   r	      s9    6s+D v  "H!!!#Ir   r	   c                   j    e Zd ZdZ ej
                  eej                  d      Z ej
                  eej                  dd      Z	 ej
                  e
ej                  dd      Z ej
                  eej                  dd      Z ej
                  eej                  dd      Z ej$                  d	      Z ej$                  d	      Z ej*                         Z ej*                  d
      Z ej*                  d
      Z ej2                  ded      Z ej*                  d      Z ej*                  d      Z ej2                  dd      Z ej2                  ddd      Z ej2                  ddd      Z ej@                  dddd      Z! ej@                  dddd      Z" fdZ#d Z$ xZ%S )Ride)pendingPending)
processing
Processing)acceptedAccepted)startedStarted)rejectedRejected)	completed	Completed)	cancelled	Cancelledrides	on_deleterelated_namedriver_ridesT)r2   r3   null
user_ridesr2   r5   r3   	geography)r5   
   r"   r   choicesdefaultauto_now_addauto_now   )r   blank   r   r5   rC      )
max_digitsdecimal_placesr5   rC   c                     | j                   sJdj                  t        d      D cg c]!  }t        t	        j
                  dd            # c}      | _         t        t        | "  |i | y c c}w )N rB   r   	   )	otpjoinrangestrrandomrandintsuperr    save)r   argskwargs_	__class__s       r   rS   z	Ride.save.   sS    xxww58LaFNN1a$8 9LMDHdD//  Ms   &A,c                 L    | j                   j                   d| j                   S N - )usermobile_numberstatusr   s    r   r   zRide.__str__3   s"    ))))*#dkk];;r   )&r   r   r   STATUS_CHOICESr   
ForeignKeyr   CASCADEr[   driverr   SET_NULLuser_devicer   vehicle_typer   vehicle	geomodels
PointFieldpickup_locationdropoff_locationDateTimeField	ride_time
start_timeend_timer   r]   
created_at
updated_atrL   pickup_namedropoff_nameDecimalFielddistanceestimated_farerS   r   __classcell__)rW   s   @r   r    r       s   	N 6Z6>>PWXDVzV^^R`fjkF#&##FfooD_klK$6$$[FOORVelmLf6??\cdG*i**T:O+y++d;$$$&I&&&&D1J$$$$/HV^YWF%%%48J%%%t4J
&

at
4C"&""cDIK#6##sTJL"v""bUYZH(V((Bqt[_`N0
<r   r    c                      e Zd Z ej                  eej                  d      Z ej                  eej                  d      Z	 ej                  d      Z ej                  dd      Z ej                  d      Zd Zy	)
DriverResponseLogdriver_responsesr1   2   r   T)r5   rC   r>   c                 L    | j                   j                   d| j                   S rY   )ra   r\   responser   s    r   r   zDriverResponseLog.__str__=   s"    ++++,C??r   N)r   r   r   r   r_   r    r`   rider   ra   r   r{   	TextFieldreasonrj   	timestampr   r   r   r   rw   rw   6   sv    6TV^^J\]DVzV^^RdeFv2.HV4t4F$$$$7I@r   rw   c                   x   e Zd ZdZ ej
                  eej                  dd      Z ej
                  e	ej                  d      Z ej                  d      Z ej                  d      Z ej                          Z ej$                         Z ej$                  d	      Z ej*                  d
ed      Z ej                   d      Z ej                   d      Z ej*                  ddd      Z ej*                  ddd      Z ej$                  d	      Z ej
                  eej                  d      Zd Zy)
SharedRider!   Tshared_ridesr7   initiated_shared_ridesr1   r8   r   r=      r"   r;   r>   r@   rD   rE   r2   r5   c                 L    | j                   j                   d| j                   S rY   )primary_userr\   r]   r   s    r   r   zSharedRide.__str__Z   s$    ##112#dkk]CCr   N)r   r   r   r^   r   r_   r   rb   rd   r   r`   r   rf   rg   primary_pickup_locationprimary_dropoff_locationrj   rk   PositiveIntegerFieldseats_totalseats_occupiedr   r]   rn   ro   rp   rq   seats_requiredr   rc   r   r   r   r   r   r   @   s4   N %6$$[FOORVestL$6$$Z6>>XpqL2i22TB3y33dC$$$&I-&--/K0V00;NV^YWF%%%48J%%%t4J"&""ct4HK#6##sDIL0V00;N#&##FfooDQKDr   r   c                      e Zd Z ej                  eej                  d      Z ej                  eej                  d      Z	 e
j                  d      Z e
j                  d      Z ej                  ddd      Z ej                  ddd      Z ej"                  d	      Z ej                  eej(                  d
      Z ej,                  d      Zd Zy)SharedRideParticipantparticipantsr1   shared_ride_participationTr8   rD   rE   r   r   r   r>   c                 0    | j                   j                   S r   )participant_userr\   r   s    r   r   zSharedRideParticipant.__str__h   s    ''5567r   N)r   r   r   r   r_   r   r`   shared_rider   r   rf   rg   rh   ri   r   rp   rq   r   r   r   rb   device_tokenrj   	joined_atr   r   r   r   r   r   ]   s    #&##J&..WefK(v((v~~\wx*i**T:O+y++d;"&""ct4HK#6##sDIL0V00;N$6$$VvTRL$$$$7I8r   r   c                       e Zd Z ej                  d      Z ej                         Z ej                         Z e	j                  d       d Zy)
RoutePoint   r   Tr8   c                     | j                   S r   r   r   s    r   r   zRoutePoint.__str__q   r   r   N)r   r   r   r   r   r   r   r   r   rf   rg   r   r   r   r   r   r   k   sI    6s+D v  "H!!!#II4(r   r   c                   
   e Zd Z ej                  d      Z ej                         Z ej                  e	ej                  d      Z ej                  e	ej                  d      Z ej                  e	d      Zd Zd	 Zd
 Zy)Router
   r   routes_as_pickupr1   routes_as_dropoffroutes_as_intermediate)r3   c                     | j                   S r   r   r   s    r   r   zRoute.__str__{   r   r   c                 t    || j                   j                         vr| j                   j                  |       y y r   )intermediate_pointsalladdr   points     r   add_intermediate_pointzRoute.add_intermediate_point~   s2    004466$$((/ 7r   c                 t    || j                   j                         v r| j                   j                  |       y y r   )r   r   remover   s     r   remove_intermediate_pointzRoute.remove_intermediate_point   s2    D,,0022$$++E2 3r   N)r   r   r   r   r   r   r}   descriptionr_   r   r`   pickup_pointdropoff_pointManyToManyFieldr   r   r   r   r   r   r   r   r   t   s    6s+D"&""$K$6$$Z6>>XjkL%F%%jFNNYlmM0&00Jbc03r   r   c                       e Zd Z ej                  eej                  d      Z ej                  eej                  d      Z	 ej                         Zd Zy)Sequence	sequencesr1   c                 L    | j                   j                   d| j                   S rY   )r   r   orderr   s    r   r   zSequence.__str__   s     **//"#djj\22r   N)r   r   r   r   r_   r   r`   router   r   r   r   r   r   r   r   r   r      sL    Fev~~KXEFjFNNQ\]E'F'')E3r   r   c                   L   e Zd Z ej                  d      Z ej                         Z ej                         Z ej                  e
ej                  d      Z ej                  eej                  d      Z ej                   d      Z ej                  dddgd	
      Zd Zy)ScheduledRideMasterr
   r   Tr   r>   r   )activeActive)inactiveInactiver   r;   c                 R    | j                    d| j                   d| j                   S )NrZ   z to )r   starting_timeending_timer   s    r   r   zScheduledRideMaster.__str__   s+    ))C 2 2348H8H7IJJr   N)r   r   r   r   r   r   	TimeFieldr   r   r_   r   rb   r   r   r`   re   rj   assigned_atr]   r   r   r   r   r   r      s    6s+D$F$$&M"&""$KFevTJEf6>>MG&&&&D9KV6JLd5eowxFKr   r   c                      e Zd ZdZ ej
                  eej                        Z ej                  ded      Z
 ej                         Z ej                         Z ej                  d      Z ej                   d	      Zd
 Zy)ScheduledRideDayr!   r2   r   r"   r;   r   r   Tr>   c                 L    | j                   j                   d| j                   S rY   )scheduled_rider   dater   s    r   r   zScheduledRideDay.__str__   s$    %%**+3tyyk::r   N)r   r   r   r^   r   r_   r   r`   r   r   r]   	DateFieldr   r   total_seatsbooked_seatsrj   rn   r   r   r   r   r   r      s    N 'V&&':fnnUNV^YWF6D-&--/K.6..q9L%%%48J;r   r   c                   "   e Zd Z ej                  eej                        Z ej                  eej                        Z	 e
j                  d      Z e
j                  d      Z ej                  d      Z ej                   d      Zd Zy)	ScheduledRideParticipantr   Tr8   r   r   r>   c                 t    | j                   j                   d| j                  j                  j                   S rY   )r[   r\   scheduled_ride_dayr   r   r   s    r   r   z ScheduledRideParticipant.__str__   s1    ))))*#d.E.E.T.T.Y.Y-Z[[r   N)r   r   r   r   r_   r   r`   r   r   r[   rf   rg   
join_point	end_pointr   r   rj   confirmed_atr   r   r   r   r   r      s    ***+;v~~V6Z6>>BD%%%5J$	$$t4I0V00;N'6''T:L\r   r   )	django.dbr   django.contrib.gis.dbrf   accounts.modelsr   r   vehiclehub.modelsr   r   rP   Modelr	   r    rw   r   r   r   r   r   r   r   r   r   r   r   <module>r      s     5 . 2 v|| %<6<< %<N@ @D D:8FLL 8 3FLL 3$3v|| 3
K&,, 
K;v|| ;(	\v|| 	\r   