package dto import "time" type SapronakDetailDTO struct { ProductID uint `json:"product_id"` ProductName string `json:"product_name"` Flag string `json:"flag"` Tanggal *time.Time `json:"tanggal,omitempty"` NoReferensi string `json:"no_referensi,omitempty"` JenisTransaksi string `json:"jenis_transaksi,omitempty"` QtyMasuk float64 `json:"qty_masuk"` QtyKeluar float64 `json:"qty_keluar"` Harga float64 `json:"harga"` Nilai float64 `json:"nilai"` } type SapronakGroupDTO struct { Flag string `json:"flag"` Items []SapronakDetailDTO `json:"items"` TotalMasuk float64 `json:"total_masuk"` TotalKeluar float64 `json:"total_keluar"` SaldoAkhir float64 `json:"saldo_akhir"` TotalNilai float64 `json:"total_nilai"` } type SapronakItemDTO struct { ProductID uint `json:"product_id"` ProductName string `json:"product_name"` Flag string `json:"flag"` IncomingQty float64 `json:"incoming_qty"` IncomingValue float64 `json:"incoming_value"` UsageQty float64 `json:"usage_qty"` UsageValue float64 `json:"usage_value"` RemainingQty float64 `json:"remaining_qty"` AveragePrice float64 `json:"average_price"` } type SapronakReportDTO struct { ProjectFlockKandangID uint `json:"project_flock_kandang_id"` ProjectFlockID uint `json:"project_flock_id"` ProjectName string `json:"project_name"` KandangID uint `json:"kandang_id"` KandangName string `json:"kandang_name"` Period int `json:"period"` Status string `json:"status"` StartDate *time.Time `json:"start_date,omitempty"` EndDate *time.Time `json:"end_date,omitempty"` TotalIncomingValue float64 `json:"total_incoming_value"` TotalUsageValue float64 `json:"total_usage_value"` Items []SapronakItemDTO `json:"items"` Groups []SapronakGroupDTO `json:"groups,omitempty"` } // Simplified view for project-level sapronak response type SapronakCategoryRowDTO struct { ID int `json:"id"` Date string `json:"date"` ReferenceNumber string `json:"reference_number"` QtyIn float64 `json:"qty_in"` QtyOut float64 `json:"qty_out"` QtyUsed float64 `json:"qty_used"` Description string `json:"description"` ProductCategory string `json:"product_category"` UnitPrice float64 `json:"unit_price"` TotalAmount float64 `json:"total_amount"` Notes string `json:"notes"` } type SapronakCategoryTotalDTO struct { Label string `json:"label"` QtyIn float64 `json:"qty_in"` QtyOut float64 `json:"qty_out"` QtyUsed float64 `json:"qty_used"` AvgUnitPrice float64 `json:"avg_unit_price"` TotalAmount float64 `json:"total_amount"` } type SapronakCategoryDTO struct { Rows []SapronakCategoryRowDTO `json:"rows"` Total SapronakCategoryTotalDTO `json:"total"` } type SapronakProjectAggregatedDTO struct { Doc *SapronakCategoryDTO `json:"doc,omitempty"` Ovk *SapronakCategoryDTO `json:"ovk,omitempty"` Pakan *SapronakCategoryDTO `json:"pakan,omitempty"` } type ClosingSapronakItemDTO struct { Id uint64 `json:"id"` Date string `json:"date"` ReferenceNumber string `json:"reference_number"` TransactionType string `json:"transaction_type"` ProductName string `json:"product_name"` ProductCategory string `json:"product_category"` ProductSubCategory string `json:"product_sub_category"` SourceWarehouse string `json:"source_warehouse"` DestinationWarehouse string `json:"destination_warehouse,omitempty"` // Destination string `json:"destination,omitempty"` Quantity float64 `json:"quantity"` Unit string `json:"unit"` FormattedQuantity string `json:"formatted_quantity"` Notes string `json:"notes"` SortDate time.Time `json:"-"` } type ClosingSapronakDTO struct { IncomingSapronak []ClosingSapronakItemDTO `json:"incoming_sapronak"` OutgoingSapronak []ClosingSapronakItemDTO `json:"outgoing_sapronak"` }