using System; using System.Collections.Generic; namespace TMSDAL.DTO.Reports { // Parsed/validated filter shape shared by every TMS Reports-family endpoint (Phases 1-6 of the // HR Metrics/Reports/Dashboards plan) -- see TMSBLL.Reports.TmsReportCriteriaParser for the // CriteriaDTO -> this mapping. Deliberately leaner than AccountsDAL.DTO.AccountsReports. // AccountReportCriteria: TMS reports are mostly point-in-time registers, not period-ledger // reports, so there is no mandatory PeriodFromDate/PeriodToDate here. public class TmsReportCriteria { // 0 = not supplied -> report decides its own default window (most registers: no date filter // at all; a few use a rolling window, e.g. GetNewJoineeAndPromotionRegister). public DateTime? FromDate { get; set; } public DateTime? ToDate { get; set; } public int TrainingDomainId { get; set; } = -1; public int DepartmentId { get; set; } = -1; public int ProgrammeId { get; set; } = -1; public int InstanceId { get; set; } = -1; public int TrainerId { get; set; } = -1; public int EmployeeId { get; set; } = -1; public int VendorId { get; set; } = -1; public int VenueId { get; set; } = -1; // 0 = all, 1 = mandatory-only -- applies to reports touching TTRAININGNEED. public int MandatoryOnly { get; set; } // Rolling-window day count for the Phase 6 new-joinee/promotion/retraining-candidate // registers (e.g. "joined in the last N days"). 0 = report's own default (typically 90). public int RollingWindowDays { get; set; } } }