using System;
using System.Collections.Generic;

namespace Valg.EVA.Skanning.ServicesModel.ServiceContracts.CountResult.Write
{
    public class GenerateCountingResultParameters
    {
        private readonly string generatedBy;
        private readonly int countingId;
        private readonly DateTime countingConcurrencyToken;
        private readonly List<BoxCountingToLock> expectedBoxCountingsToLock;
        private readonly string reportingUnitIdentifier;
        private readonly bool isInEmergencyMode;

        public GenerateCountingResultParameters(string generatedBy, string reportingUnitIdentifier, int countingId, DateTime countingConcurrencyToken, List<BoxCountingToLock> expectedBoxCountingsToLock, bool isInEmergencyMode)
        {
            this.generatedBy = generatedBy;
            this.reportingUnitIdentifier = reportingUnitIdentifier;
            this.countingId = countingId;
            this.countingConcurrencyToken = countingConcurrencyToken;
            this.expectedBoxCountingsToLock = expectedBoxCountingsToLock;
            this.isInEmergencyMode = isInEmergencyMode;
        }

        public string GeneratedBy
        {
            get { return generatedBy; }
        }

        public int CountingId
        {
            get { return countingId; }
        }

        public string ReportingUnitIdentifier
        {
            get { return reportingUnitIdentifier; }
        }

        public DateTime CountingConcurrencyToken
        {
            get { return countingConcurrencyToken; }
        }

        public List<BoxCountingToLock> ExpectedBoxCountingsToLock
        {
            get { return expectedBoxCountingsToLock; }
        }

        public bool IsInEmergencyMode
        {
            get { return isInEmergencyMode; }
        }
    }
}
