package dto type HppPerFarmFiltersDTO struct { AreaID string `json:"area_id"` LocationID string `json:"location_id"` StartDate string `json:"start_date"` EndDate string `json:"end_date"` } type HppPerFarmMetaDTO struct { Page int `json:"page"` Limit int `json:"limit"` TotalPages int64 `json:"total_pages"` TotalResults int64 `json:"total_results"` Filters HppPerFarmFiltersDTO `json:"filters"` } type HppPerFarmResponseData struct { StartDate string `json:"start_date"` EndDate string `json:"end_date"` Rows []HppPerFarmRowDTO `json:"rows"` Summary HppPerFarmSummaryDTO `json:"summary"` } // HppPerFarmRowDTO is one farm (location) row, aggregating all LAYING project // flocks within the same location over the selected date range. type HppPerFarmRowDTO struct { Location HppPerKandangLocationDTO `json:"location"` // total_cost_rp = depreciation + pakan + ovk + bop (+ other production cost). // DOC/pullet is NOT included here (it is expensed through depreciation); // average_doc_price_rp is provided for information only. TotalCostRp float64 `json:"total_cost_rp"` FeedCostRp float64 `json:"feed_cost_rp"` OvkCostRp float64 `json:"ovk_cost_rp"` BopCostRp float64 `json:"bop_cost_rp"` DepreciationRp float64 `json:"depreciation_rp"` OtherCostRp float64 `json:"other_cost_rp"` EggWeightRecordingKg float64 `json:"egg_weight_recording_kg"` EggWeightDoKg float64 `json:"egg_weight_do_kg"` HppPerKgProduction float64 `json:"hpp_per_kg_production"` HppPerKgSales float64 `json:"hpp_per_kg_sales"` AverageDocPriceRp int64 `json:"average_doc_price_rp"` Flocks []HppPerFarmFlockDTO `json:"flocks"` } // HppPerFarmFlockDTO is the per-project-flock breakdown inside a farm row. type HppPerFarmFlockDTO struct { ProjectFlockID int64 `json:"project_flock_id"` FlockName string `json:"flock_name"` TotalCostRp float64 `json:"total_cost_rp"` FeedCostRp float64 `json:"feed_cost_rp"` OvkCostRp float64 `json:"ovk_cost_rp"` BopCostRp float64 `json:"bop_cost_rp"` DepreciationRp float64 `json:"depreciation_rp"` OtherCostRp float64 `json:"other_cost_rp"` EggWeightRecordingKg float64 `json:"egg_weight_recording_kg"` EggWeightDoKg float64 `json:"egg_weight_do_kg"` HppPerKgProduction float64 `json:"hpp_per_kg_production"` HppPerKgSales float64 `json:"hpp_per_kg_sales"` AverageDocPriceRp int64 `json:"average_doc_price_rp"` } type HppPerFarmSummaryDTO struct { TotalCostRp float64 `json:"total_cost_rp"` TotalEggWeightRecordingKg float64 `json:"total_egg_weight_recording_kg"` TotalEggWeightDoKg float64 `json:"total_egg_weight_do_kg"` AverageHppPerKgProduction float64 `json:"average_hpp_per_kg_production"` AverageHppPerKgSales float64 `json:"average_hpp_per_kg_sales"` } func NewHppPerFarmFiltersDTO(area, location, startDate, endDate string) HppPerFarmFiltersDTO { return HppPerFarmFiltersDTO{ AreaID: area, LocationID: location, StartDate: startDate, EndDate: endDate, } }