
    1he                         d dl mZmZ d dlmZmZ d dlmZ  G d de      Z G d de      Z	 G d d	e      Z
 G d
 de      Zy)    )LiteralOptional)Fieldfield_validator)CustomModelc                       e Zd ZU dZee   ed<   dZee   ed<   dZ	ee
   ed<   dZee   ed<   dZee   ed<   dZee
   ed<   dZee
   ed<   dZee
   ed	<   dZee
   ed
<   dZee   ed<   dZeed      ed<   dZee   ed<    ed      d        Zy)CentralisedCreateNgroup_idabout_warehousewarehouse_sizeexpected_number_of_warehouse0expected_number_of_warehouse_increase_every_yearutilities_costemployee_cost_per_headrental_expensestransportation_costnumber_of_employeesPutawayFlowthroughtypescentralised_additional_remarkc                 *    ||dkD  rt        d      |S )N   z#Number of employees cannot exceed 2
ValueErrorclsvs     L/var/www/html/retail-simulation-api/app/api/centralised_and_direct/schema.pyvalidate_employee_limitz)CentralisedCreate.validate_employee_limit   s    =QUBCC    )__name__
__module____qualname__r
   r   int__annotations__r   strr   floatr   r   r   r   r   r   r   r   r   r   r   r!    r"   r    r	   r	      s    "Hhsm"%)OXc])&*NHUO*26 (3-6FJ4hsmJ&*NHUO*.2HUO2'+OXe_++/%/)-#-9=E8G456=37!8C=7*+ ,r"   r	   c                       e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<    ed      d
        Zy)DirectCreateNr
   about_directspace_allotted_in_a_store"employees_in_charge_at_store_levelsalary_of_each_employeeunloading_policieschecking_policiesdirect_additional_remarksc                 *    ||dkD  rt        d      |S )Nr   z2Employees in charge at store level cannot exceed 2r   r   s     r    r!   z$DirectCreate.validate_employee_limit%   s    =QUQRRr"   )r#   r$   r%   r
   r   r&   r'   r-   r(   r.   r/   r0   r)   r1   r2   r3   r   r!   r*   r"   r    r,   r,      s    "Hhsm""&L(3-&/3x}38<&</3Xe_3(,,'+x}+/3x}39: ;r"   r,   c                   F    e Zd ZU ed   ed<   dZee   ed<   dZee	   ed<   y)DistributionCreate)z"Centralised Warehouse Distributionz"Direct Store Delivery Distributiondistribution_typeNcentraliseddirect)
r#   r$   r%   r   r'   r8   r   r	   r9   r,   r*   r"   r    r6   r6   ,   s-    ijj/3K+,3%)FH\")r"   r6   c                      e Zd ZU eed<   dZee   ed<   dZee   ed<   dZ	ee
   ed<   dZee   ed<   dZee   ed<   dZee
   ed<   dZee
   ed	<   dZee
   ed
<   dZee
   ed<   dZee   ed<   dZeed      ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee
   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)CentralisedAndDirectResponsecentralised_direct_idNr
   r   r   r   r   r   r   r   r   r   r   r   r   r-   r.   r/   r0   r1   r2   r3   )r#   r$   r%   r&   r'   r
   r   r   r(   r   r)   r   r   r   r   r   r   r   r   r   r   r-   r.   r/   r0   r1   r2   r3   r*   r"   r    r;   r;   1   s%   "Hhsm"%)OXc])&*NHUO*26 (3-6FJ4hsmJ&*NHUO*.2HUO2'+OXe_++/%/)-#-9=E8G456=37!8C=7"&L(3-&/3x}38<&</3Xe_3(,,'+x}+/3x}3r"   r;   N)typingr   r   pydanticr   r   app.utils.schemas_utilsr   r	   r,   r6   r;   r*   r"   r    <module>r@      s>    $ + / *; "* *
4; 4r"   