package dto

type ExpenseDepreciationFiltersDTO struct {
	AreaID         string `json:"area_id"`
	LocationID     string `json:"location_id"`
	ProjectFlockID string `json:"project_flock_id"`
	Period         string `json:"period"`
}

type ExpenseDepreciationMetaDTO struct {
	Page         int                           `json:"page"`
	Limit        int                           `json:"limit"`
	TotalPages   int64                         `json:"total_pages"`
	TotalResults int64                         `json:"total_results"`
	Filters      ExpenseDepreciationFiltersDTO `json:"filters"`
}

type ExpenseDepreciationRowDTO struct {
	ProjectFlockID               int64   `json:"project_flock_id"`
	FarmName                     string  `json:"farm_name"`
	Period                       string  `json:"period"`
	DepreciationPercentEffective float64 `json:"depreciation_percent_effective"`
	DepreciationValue            float64 `json:"depreciation_value"`
	PulletCostDayNTotal          float64 `json:"pullet_cost_day_n_total"`
	Components                   any     `json:"components"`
}

type ExpenseDepreciationManualInputRowDTO struct {
	ID             int64   `json:"id"`
	ProjectFlockID int64   `json:"project_flock_id"`
	FarmName       string  `json:"farm_name"`
	TotalCost      float64 `json:"total_cost"`
	CutoverDate    string  `json:"cutover_date"`
	Note           *string `json:"note"`
}

func NewExpenseDepreciationFiltersDTO(area, location, projectFlockID, period string) ExpenseDepreciationFiltersDTO {
	return ExpenseDepreciationFiltersDTO{
		AreaID:         area,
		LocationID:     location,
		ProjectFlockID: projectFlockID,
		Period:         period,
	}
}
