namespace ComplianceDAL.DTO.Analytics; public class GSTSummaryDTO { public string GSTIN { get; set; } = string.Empty; public string ReturnPeriod { get; set; } = string.Empty; public decimal TotalTaxableValue { get; set; } public decimal TotalIGST { get; set; } public decimal TotalCGST { get; set; } public decimal TotalSGST { get; set; } public decimal TotalCess { get; set; } public decimal TotalITCIGST { get; set; } public decimal TotalITCCGST { get; set; } public decimal TotalITCSGST { get; set; } public int TotalDocuments { get; set; } public int FiledDocuments { get; set; } public int PendingDocuments { get; set; } public int RejectedDocuments { get; set; } } public class OUWiseGSTSummaryDTO { public int OUId { get; set; } public string OUName { get; set; } = string.Empty; public string GSTIN { get; set; } = string.Empty; public string ReturnPeriod { get; set; } = string.Empty; public decimal TaxableValue { get; set; } public decimal IGSTAmount { get; set; } public decimal CGSTAmount { get; set; } public decimal SGSTAmount { get; set; } public decimal CessAmount { get; set; } public int DocumentCount { get; set; } } public class HSNSummaryDTO { public string HSNCode { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public string UOM { get; set; } = string.Empty; public decimal TotalQuantity { get; set; } public decimal TaxableValue { get; set; } public decimal IGSTAmount { get; set; } public decimal CGSTAmount { get; set; } public decimal SGSTAmount { get; set; } public decimal CessAmount { get; set; } } public class GSTLedgerRowDTO { public string GSTIN { get; set; } = string.Empty; public string ReturnPeriod { get; set; } = string.Empty; public string LedgerType { get; set; } = string.Empty; // Liability, ITC, Cash public decimal IGSTOpening { get; set; } public decimal CGSTOpening { get; set; } public decimal SGSTOpening { get; set; } public decimal IGSTCredits { get; set; } public decimal CGSTCredits { get; set; } public decimal SGSTCredits { get; set; } public decimal IGSTDebits { get; set; } public decimal CGSTDebits { get; set; } public decimal SGSTDebits { get; set; } public decimal IGSTClosing { get; set; } public decimal CGSTClosing { get; set; } public decimal SGSTClosing { get; set; } } public class ExceptionItemDTO { public string ExceptionType { get; set; } = string.Empty; // MissingIRN, ReconMismatch, SubmissionFailed, PendingReturn public string GSTIN { get; set; } = string.Empty; public string ReturnPeriod { get; set; } = string.Empty; public string DocumentNumber { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public string Severity { get; set; } = string.Empty; public DateTime? DocumentDate { get; set; } public int? ArtifactId { get; set; } } public class FilingStatusCalendarDTO { public string GSTIN { get; set; } = string.Empty; public string LegalName { get; set; } = string.Empty; public int PeriodYear { get; set; } public int PeriodMonth { get; set; } public string ReturnType { get; set; } = string.Empty; public string Status { get; set; } = string.Empty; // NotStarted, Draft, Submitted, Filed, Overdue public DateTime? DueDate { get; set; } public DateTime? FiledOn { get; set; } public string? AckNumber { get; set; } } public class PeriodSummaryDTO { public int SummaryId { get; set; } public string GSTIN { get; set; } = string.Empty; public int PeriodYear { get; set; } public int PeriodMonth { get; set; } public string SummaryType { get; set; } = string.Empty; public decimal TotalTaxableValue { get; set; } public decimal TotalIGST { get; set; } public decimal TotalCGST { get; set; } public decimal TotalSGST { get; set; } public decimal TotalCess { get; set; } public decimal TotalITCIGST { get; set; } public decimal TotalITCCGST { get; set; } public decimal TotalITCSGST { get; set; } public int TotalDocuments { get; set; } public int InvalidDocuments { get; set; } public DateTime RecomputedOn { get; set; } } public class RecomputeSummaryRequestDTO { public string GSTIN { get; set; } = string.Empty; public int PeriodYear { get; set; } public int PeriodMonth { get; set; } public string SummaryType { get; set; } = "GSTR1"; }