package aplicare

import "api-service/internal/models"

// === MONITORING MODELS ===

// MonitoringRequest represents monitoring data request
type MonitoringRequest struct {
	models.BaseRequest
	TanggalAwal  string `json:"tanggal_awal" validate:"required"`
	TanggalAkhir string `json:"tanggal_akhir" validate:"required"`
	JenisLaporan string `json:"jenis_laporan" validate:"required,oneof=kunjungan klaim rujukan sep"`
	PPK          string `json:"ppk,omitempty"`
	StatusData   string `json:"status_data,omitempty"`
	models.PaginationRequest
}

// MonitoringData represents monitoring information
type MonitoringData struct {
	Tanggal     string  `json:"tanggal"`
	PPK         string  `json:"ppk"`
	NamaPPK     string  `json:"nama_ppk"`
	JumlahKasus int     `json:"jumlah_kasus"`
	TotalTarif  float64 `json:"total_tarif"`
	StatusData  string  `json:"status_data"`
	Keterangan  string  `json:"keterangan,omitempty"`
}

// MonitoringResponse represents monitoring API response
type MonitoringResponse struct {
	models.BaseResponse
	Data       []MonitoringData           `json:"data,omitempty"`
	Summary    *MonitoringSummary         `json:"summary,omitempty"`
	Pagination *models.PaginationResponse `json:"pagination,omitempty"`
}

// MonitoringSummary represents monitoring summary
type MonitoringSummary struct {
	TotalKasus     int     `json:"total_kasus"`
	TotalTarif     float64 `json:"total_tarif"`
	RataRataTarif  float64 `json:"rata_rata_tarif"`
	PeriodeLaporan string  `json:"periode_laporan"`
}
