o
    (&h                     @   s   d dl mZmZmZ d dlmZ d dlmZmZmZ d dl	m
Z
 G dd dee
ZG dd deZG d	d
 d
eZG dd deZG dd deZG dd deZdS )    )	BaseModelFieldEmailStr)datetime)OptionalListLiteral)Enumc                   @   s   e Zd ZdZdZdZdS )StatusactiveinactivemaintenanceN)__name__
__module____qualname__ACTIVEINACTIVEMAINTENANCE r   r   ?/var/www/html/moveengine/app/v1/models/platform/pricingrules.pyr
      s    r
   c                   @   sJ   e Zd ZU eed< dZee ed< eed< eed< ed ed< e	ed< d	S )
	ConditionlabelT
applicable	from_timeto_time)amount
percentagecalculation_typevalueN)
r   r   r   str__annotations__r   r   boolr   floatr   r   r   r   r      s   
 r   c                   @   s  e Zd ZU edddZeed< edddZeed< edddZeed< edd	dZ	eed
< edddZ
eed< edddZeed< edddZeed< eedZee ed< eejddZeed< eejddZeed< edddZeed< eejdZeed< dS )PricingRule.Identifier for the accountdescription
account_idIdentifier for the useruser_idRule identifier	rule_name*Pricing type (e.g., fixed, time, distance)pricing_typeFixed base cost	base_costVariable cost per unitrate#Unit for pricing (e.g., minute, km)unitdefault_factory
conditionsCreation timestampr5   r&   created_dateLast updated timestampupdated_dateWPricing type value to showcase on the page. Valid options: 'Fixed', 'Time', 'Distance'.pricing_type_value)defaultstatusN)r   r   r   r   r'   r   r    r)   r+   r-   r/   r"   r1   r3   listr6   r   r   r   utcnowr9   r;   r=   r
   r   r?   r   r   r   r   r#      s   
 r#   c                   @   s,  e Zd ZU edddZeed< edddZeed< edddZeed< edddZ	eed	< edd
dZ
eed< edddZeed< edddZeed< edddZeed< eedZee ed< eejddZeed< eejddZeed< edddZeed< edddZeed< edddZeed< dS ) PricingRuleList.r$   r%   r'   r(   r)   idr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r6   r7   r8   r9   r:   r;   r<   r=   z3Status of the pricing rule (e.g., active, inactive)r?   z&Unique Identifier for the pricing rulepricing_rules_idN)r   r   r   r   r'   r   r    r)   rC   r+   r-   r/   r"   r1   r3   r@   r6   r   r   r   rA   r9   r;   r=   r?   rD   intr   r   r   r   rB   !   s   
 rB   c                   @   s"   e Zd ZU eed< ee ed< dS )PricingRulestotal_countusersN)r   r   r   rE   r    r   rB   r   r   r   r   rF   2   s   
 rF   c                   @   s   e Zd ZU eed< dS )PricingRuleStatusUpdater?   N)r   r   r   r   r    r   r   r   r   rI   6   s   
 rI   N)pydanticr   r   r   r   typingr   r   r   enumr	   r   r
   r   r#   rB   rF   rI   r   r   r   r   <module>   s    