
    ]i                     (   d Z ddlmZmZ ddlmZ ddl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 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)z3Schemas for the stock adjustment (sounding) module.    )datedatetime)Decimal)Literal)	BaseModel
ConfigDict)StatusLaporanc                   N    e Zd ZU dZeed<   dZedz  ed<   eed<   dZedz  ed<   y)StockAdjustmentItemInputz%Input for a single tank sounding row.	tangki_idNdipstick_manual_mmdipstick_digital_mmvolume_digital_liter_override)	__name__
__module____qualname____doc__int__annotations__r   r   r        3/var/www/html/spbu.com/backend/app/schemas/stock.pyr   r      s.    /N)-$-  48!7T>8r   r   c                   6    e Zd ZU dZeed<   eed<   ee   ed<   y)StockAdjustmentCreatez)Payload to create a new stock adjustment.tanggalshift_iditemsN)	r   r   r   r   r   r   r   listr   r   r   r   r   r      s    3MM())r   r   c                   "    e Zd ZU dZee   ed<   y)StockAdjustmentUpdatez9Payload to replace tank rows on a DRAFT stock adjustment.r   N)r   r   r   r   r   r   r   r   r   r   r    r       s    C())r   r    c                   6    e Zd ZU dZed   ed<   dZedz  ed<   y)ReviewRequestzLPayload for reviewing (approving or rejecting) a submitted stock adjustment.)approverejectactionNcatatan)r   r   r   r   r   r   r&   strr   r   r   r"   r"   #   s    V'((GS4Zr   r"   c                       e Zd ZU dZeed<   y)UnlockRequestz:Payload for unlocking an approved/locked stock adjustment.alasanN)r   r   r   r   r'   r   r   r   r   r)   r)   *   s
    DKr   r)   c                   H    e Zd ZU  ed      Zeed<   eed<   eed<   eed<   y)StockItemFotoResponseTfrom_attributesidstock_adjustment_item_idtipeurlN)r   r   r   r   model_configr   r   r'   r   r   r   r,   r,   0   s!    d3LG!!
I	Hr   r,   c                       e Zd ZU dZ ed      Zeed<   eed<   eed<   eed<   e	ed<   e	d	z  ed
<   e	d	z  ed<   e	d	z  ed<   e	d	z  ed<   e	d	z  ed<   g Z
ee   ed<   y	)StockAdjustmentItemResponsez1Enriched response for a single tank sounding row.Tr-   r/   r   tangki_namaproduk_namakapasitas_literNr   volume_manual_literr   volume_digital_litervolume_final_literfotos)r   r   r   r   r   r3   r   r   r'   r   r<   r   r,   r   r   r   r5   r5   9   sm    ;d3LGN$& 4' 4'!D.($&)+E4%&+r   r5   c                      e Zd ZU dZ ed      Zeed<   eed<   eed<   eed<   e	ed<   e
ed	<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   ed
z  ed<   eed<   eed<   y
)StockAdjustmentResponsez4Summary response for a stock adjustment (list view).Tr-   r/   spbu_idr   
shift_namar   statusNsubmitted_by_namesubmitted_atreviewed_by_namereviewed_atcatatan_reviewunlock_reasonrecalled_by_namerecalled_atunlocked_by_nameunlocked_at
item_counttotal_volume_final)r   r   r   r   r   r3   r   r   r'   r   r	   r   r   r   r   r   r>   r>   K   s    >d3LGLMOMTz!T/!Dj D $J:Dj D Dj D Or   r>   c                   "    e Zd ZU dZee   ed<   y)StockAdjustmentDetailResponsez6Full detail response including all tank sounding rows.r   N)r   r   r   r   r   r5   r   r   r   r   rO   rO   d   s    @+,,r   rO   c                   d    e Zd ZU dZeed<   eed<   eed<   eed<   edz  ed<   edz  ed<   eed	<   y)
StockInitResponseuR   Pre-fill data per tank — last known volume/dipstick for starting a new sounding.r   r6   r7   r8   Nlast_volume_finallast_dipstick_digital_mmis_first_time)	r   r   r   r   r   r   r'   r   boolr   r   r   rQ   rQ   j   s6    \N~%%n,r   rQ   N)r   r   r   decimalr   typingr   pydanticr   r   app.models.operationalr	   r   r   r    r"   r)   r,   r5   r>   rO   rQ   r   r   r   <module>rZ      s    9 #   * 09y 9*I **I *I I I ,) ,$ i  2-$; -		 	r   