using System.Collections.Generic; using System.Linq; namespace BankSampahApp.Models; /// /// View model yang menampung data grafik dashboard beserta opsi filter tahunan. /// public class DashboardChartViewModel { /// /// Data grafik per tahun (key berupa tahun). /// public Dictionary YearlyData { get; set; } = new(); /// /// Tahun yang dipilih saat halaman pertama kali dimuat. /// public int SelectedYear { get; set; } /// /// Daftar tahun yang tersedia untuk filter, disortir menurun. /// public IEnumerable AvailableYears => YearlyData.Keys.OrderByDescending(x => x); /// /// Data grafik verifikasi vs aktif transaksi per tahun dan entitas. /// public Dictionary> VerifiedActiveYearlyData { get; set; } = new(); /// /// Daftar entitas yang dapat difilter. /// public List Entities { get; set; } = new(); /// /// Entitas yang dipilih secara default. /// public string SelectedEntity { get; set; } = string.Empty; } /// /// Struktur data payload untuk chart per tahun. /// public class DashboardChartPayload { /// /// Label (umumnya nama bulan) yang ditampilkan pada sumbu X. /// public List Labels { get; set; } = new(); /// /// Dataset yang ditampilkan pada grafik. /// public List Datasets { get; set; } = new(); } /// /// Dataset individual untuk Chart.js. /// public class DashboardChartDataset { public string Label { get; set; } = string.Empty; public List Data { get; set; } = new(); } /// /// Payload untuk grafik data terverifikasi & aktif transaksi. /// public class VerifiedActiveChartPayload { public List Labels { get; set; } = new(); public List VerifiedData { get; set; } = new(); public List ActiveData { get; set; } = new(); }