using System;
using System.Collections.Generic;

namespace XLAB2
{
    internal sealed class VerificationReportFilter
    {
        public int? CustomerId { get; set; }

        public int? MeasurementAreaId { get; set; }

        public DateTime? DateFrom { get; set; }

        public DateTime? DateTo { get; set; }
    }

    internal sealed class VerificationReportSummary
    {
        public int TotalCount { get; set; }

        public int GoodCount { get; set; }

        public int RejectedCount { get; set; }

        public int WithoutResultCount { get; set; }

        public int IssuedCount { get; set; }
    }

    internal sealed class VerificationReportCustomerRow
    {
        public int? CustomerId { get; set; }

        public string CustomerName { get; set; }

        public int TotalCount { get; set; }

        public int GoodCount { get; set; }

        public int RejectedCount { get; set; }

        public int WithoutResultCount { get; set; }

        public int IssuedCount { get; set; }
    }

    internal sealed class VerificationReportMeasurementAreaRow
    {
        public int? MeasurementAreaId { get; set; }

        public string MeasurementAreaName { get; set; }

        public int TotalCount { get; set; }

        public int GoodCount { get; set; }

        public int RejectedCount { get; set; }

        public int WithoutResultCount { get; set; }

        public int IssuedCount { get; set; }
    }

    internal sealed class VerificationReportData
    {
        public VerificationReportData()
        {
            Summary = new VerificationReportSummary();
            CustomerRows = Array.Empty<VerificationReportCustomerRow>();
            MeasurementAreaRows = Array.Empty<VerificationReportMeasurementAreaRow>();
        }

        public VerificationReportSummary Summary { get; set; }

        public IReadOnlyList<VerificationReportCustomerRow> CustomerRows { get; set; }

        public IReadOnlyList<VerificationReportMeasurementAreaRow> MeasurementAreaRows { get; set; }
    }
}
