
    h                         S SK Jr  S SKJr  S SKJrJr  S SKJrJrJ	r	   " S S\
\5      r " S S\
\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    )Enum)datetime)	BaseModelField)OptionalListDictc                       \ rS rSrSrSrSrg)JobStopType	   pickupdrop N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r       IC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\models\platform\jobs.pyr   r   	   s    FDr   r   c                   $    \ rS rSrSrSrSrSrSrg)	JobStatus   pendingactive	completed	cancelledr   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    GFIIr   r   c                       \ rS rSr% \" SSS9r\\S'   \" SSS9r\	\S'   \" SSS9r
\\S	'   \" S
SS9r\\   \S'   \" S
SS9r\\   \S'   Srg
)JobStop   .z5Indicates whether this stop is for pickup or drop-offdescription	stop_typez"Address or coordinates of the stoplocationzOrder of the stop in the jobsequenceNzPlanned time for this stopscheduled_timez Actual arrival time at this stopactual_timer   )r   r   r   r   r   r#   r   __annotations__r$   strr%   intr&   r   r   r'   r   r   r   r   r   r      sf    "34klI{l#+OPHcP#+IJHcJ).tA])^NHX&^&+D>`&aK(#ar   r   c                      \ rS rSr% \" SSS9r\\S'   \" SSS9r\	\   \S'   \" SS	S9r
\	\   \S
'   \" SSS9r\	\   \S'   \" \SS9r\\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" SSS9r\	\   \S'   \" \R4                  SS9r\\S '   \" \S!S9r\	\   \S"'   \" \R>                  S#S9r \\S$'    " S% S&5      r!S'r"g)(JobBase    .z'Reference to the service being providedr!   
service_idNzAssigned workforce memberworkforce_idz Assigned vehicle (if applicable)
vehicle_idz(Customer booking the job (if applicable)customer_idz'List of stops (pickup/drop) for the job)default_factoryr"   	job_stopsz Scheduled start time for the jobscheduled_startzScheduled end time for the jobscheduled_endzActual start time of the job	job_startzActual end time of the jobjob_endz5Distance traveled during the job (e.g. in kilometers)distance_travelledz5Cost of the job (computed from service pricing rules)costzCMax capacity (number of simultaneous jobs) allowed for this servicecapacityzCurrent status of the job)defaultr"   statuszAdditional custom fieldsmetadataz"Timestamp when the job was createdcreated_datec                       \ rS rSrSrSrg)JobBase.Config>   Tr   N)r   r   r   r   orm_moder   r   r   r   Configr@   >   s    r   rC   r   )#r   r   r   r   r   r.   r*   r(   r/   r   r0   r1   listr3   r   r   r4   r   r5   r6   r7   r8   floatr9   r:   r   r   r<   dictr=   r	   utcnowr>   rC   r   r   r   r   r,   r,       sc   C-VWJW"':U"VL(3-V %d8Z [J[!&t9c!dK#d  %TGpqItG}q +0Bd*eOXh'e(-d@`(aM8H%a$)$<Z$[Ix!["':V"WGXhW +0By*zz!$4klD(5/l $D6{|Hhsm|i&7&7E`aFIa  %TGabHhtnb"8??PtuL(u r   r,   c                       \ rS rSrSrg)	JobCreateA   r   N)r   r   r   r   r   r   r   r   rI   rI   A   s    r   rI   c                      \ rS rSr% \" S5      r\\   \S'   \" S5      r	\\   \S'   \" S5      r
\\   \S'   \" S5      r\\   \S'   \" S5      r\\\      \S'   \" S5      r\\   \S'   \" S5      r\\   \S	'   \" S5      r\\   \S
'   \" S5      r\\   \S'   \" S5      r\\   \S'   \" S5      r\\   \S'   \" S5      r\\   \S'   \" S5      r\\   \S'   \" S5      r\\   \S'   Srg)	JobUpdateD   Nr.   r/   r0   r1   r3   r4   r5   r6   r7   r8   r9   r:   r<   r=   r   )r   r   r   r   r   r.   r   r*   r(   r/   r0   r1   r3   r   r   r4   r   r5   r6   r7   r8   rE   r9   r:   r<   r   r=   r	   r   r   r   r   rL   rL   D   s	    %dJ+"'+L(3-- %dJ+!&tK#,).tIxW&4*/+OXh'5(-dM8H%3$)$KIx!/"'+GXh-*/+5!$KD(5/'#DkHhsm)"'+FHY-$T{Hhtn*r   rL   c                   .    \ rS rSr% \" SSS9r\\S'   Srg)JobReadT   .zUnique identifier for the jobr!   job_idr   N)	r   r   r   r   r   rQ   r*   r(   r   r   r   r   rO   rO   T   s    )HIFCIr   rO   N)enumr   r   pydanticr   r   typingr   r   r	   r)   r   r   r   r,   rI   rL   rO   r   r   r   <module>rU      sq      % ' '
#t T bi bi B	 	+	 + Jg Jr   