
    ]i                        d Z ddlmZmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ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y)z;Schemas for the penyetoran (per-shift cash deposit) module.    )datedatetime)Decimal)LiteralOptional)	BaseModel
ConfigDict)StatusPenyetoranStatusPenyetoranBatchc                   b    e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   y
)ShiftProductSummaryz:Aggregated sales numbers for one product inside one shift.	produk_idproduk_namaproduk_kodevolume_digitalvolume_manualvolume_finalnilai
harga_jualN__name__
__module____qualname____doc__int__annotations__strr        8/var/www/html/spbu.com/backend/app/schemas/penyetoran.pyr   r      s3    DNNr   r   c                   r    e Zd ZU dZeed<   eed<   eed<   eed<   ee   ed<   e	ed<   e	ed<   e	ed	<   e	ed
<   y)ShiftSummaryz<Aggregated summary for a single shift on the requested date.laporan_shift_idshift_id
shift_namastatusproductstotal_volume_digitaltotal_volume_manualtotal_volume_finaltotal_nilaiN)
r   r   r   r   r   r   r   listr   r   r   r   r    r"   r"      s>    FMOK&''!!  r   r"   c                   b    e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   y
)ProductTotalz'Cross-shift total for a single product.r   r   r   r   r   r   r   r   Nr   r   r   r    r.   r.   +   s3    1NNr   r.   c                       e Zd ZU dZeed<   ee   ed<   ee   ed<   e	ed<   e	ed<   e	ed<   e	ed<   e	ed	<   e	ed
<   dZ
ee   ed<   dZee   ed<   y)DailySummaryzCFull daily summary used to pre-populate the penyetoran create form.tanggalshiftsproducts_totalgrand_total_volume_digitalgrand_total_volume_manualgrand_total_volume_finalgrand_total_nilaitotal_expensessuggested_setorNexisting_penyetoran_idexisting_penyetoran_status)r   r   r   r   r   r   r,   r"   r.   r   r:   r   r   r;   r   r   r   r    r0   r0   8   sb    MM&& ''&&%%,0HSM0044r   r0   c                   &    e Zd ZU dZdZee   ed<   y)PenyetoranUpdatez@Payload to update a DRAFT penyetoran (only catatan is editable).Ncatatan)r   r   r   r   r>   r   r   r   r   r   r    r=   r=   L   s    J!GXc]!r   r=   c                   J    e Zd ZU dZee   ed<   eed<   eed<   dZe	e
   ed<   y)PenyetoranBatchCreatez>Payload to create a batch from a list of draft penyetoran IDs.penyetoran_idstanggal_from
tanggal_toNr>   )r   r   r   r   r,   r   r   r   r>   r   r   r   r   r    r@   r@   R   s)    HI!GXc]!r   r@   c                   6    e Zd ZU dZed   ed<   dZee   ed<   y)BatchReviewRequestz2Payload for manager approval of a submitted batch.approveactionNcatatan_review)	r   r   r   r   r   r   rH   r   r   r   r   r    rE   rE   [   s    <I$(NHSM(r   rE   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
   ed	<   eed
<   eed<   eed<   e	e
   ed<   e	e
   ed<   e
ed<   e	e   ed<   e	e
   ed<   eed<   eed<   y)PenyetoranResponsez-Full response for a single penyetoran record.Tfrom_attributesidspbu_idr#   r1   r$   r%   
jumlah_kasjumlah_non_kastotal_penjualanr>   	bukti_urlr&   batch_idcreated_by_name
created_at
updated_atN)r   r   r   r   r	   model_configr   r   r   r   r   r   r   r   r   r    rJ   rJ   f   s~    7d3LGLMMc]}Ksmc]"r   rJ   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   ed	<   eed
<   e
e   ed<   e
e   ed<   e
e   ed<   e
e   ed<   e
e   ed<   ee   ed<   eed<   eed<   y)PenyetoranBatchResponsez+Full response for a single PenyetoranBatch.TrK   rM   rN   rB   rC   total_amountr>   r&   submitted_by_namesubmitted_atreviewed_by_namereviewed_atrH   itemsrU   rV   N)r   r   r   r   r	   rW   r   r   r   r   r   r   r   r,   rJ   r   r   r    rY   rY   }   s    5d3LGLc]K}$8$$sm#(##SM!"##r   rY   N)r   r   r   decimalr   typingr   r   pydanticr   r	   app.models.penyetoranr
   r   r   r"   r.   r0   r=   r@   rE   rJ   rY   r   r   r    <module>rd      s    A #  $ * I
) 
9 
9 
59 5("y ""I ") ) .i r   