using System.Xml.Serialization;

namespace Wayne.FDCPOSLibrary
{
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlRootAttribute(ElementName = "ServiceResponse", Namespace = "")]
    public partial class ServiceResponseGetFuelSaleTrxDetails : ServiceResponse
    {
        private ServiceResponseFDCdataGetFuelSaleTrxDetails[] FDCdataField;


        [System.Xml.Serialization.XmlElementAttribute("FDCdata", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public ServiceResponseFDCdataGetFuelSaleTrxDetails[] FDCdata
        {
            get { return this.FDCdataField; }
            set { this.FDCdataField = value; }
        }

        public ServiceResponseGetFuelSaleTrxDetails()
        {
            RequestType = "GetFuelSaleTrxDetails";
        }
    }

    [System.SerializableAttribute()]
    public partial class ServiceResponseFDCdataGetFuelSaleTrxDetails
    {
        private string FDCTimeStampField;
        private ServiceResponseDeviceClassGetFuelSaleTrxDetails[] DeviceClassField;
        private string FDCStatusField;


        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FDCTimeStamp
        {
            get { return this.FDCTimeStampField; }
            set { this.FDCTimeStampField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute("DeviceClass", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)
        ]
        public ServiceResponseDeviceClassGetFuelSaleTrxDetails[] DeviceClass
        {
            get { return this.DeviceClassField; }
            set { this.DeviceClassField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FDCStatus
        {
            get { return this.FDCStatusField; }
            set { this.FDCStatusField = value; }
        }
    }


    [System.SerializableAttribute()]
    public partial class ServiceResponseDeviceClassGetFuelSaleTrxDetails
    {
        private string TypeField;
        private string DeviceIdField;
        private string PumpNoField;
        private string NozzleNoField;
        private string TransactionSeqNoField;
        private string StateField;
        private string ReleaseTokenField;
        private string TypePOSField;
        private FuelModeElementClass FuelModeField;
        private string AmountField;
        private string VolumeField;
        private string UnitPriceField;
        private string VolumeProduct1Field;
        private string VolumeProduct2Field;

        private string ProductNo1Field;
        private string ProductNo2Field;
        private string ProductNameField;
        private string ProductUMField;
        private string BlendRatioField;
        private string DSPFieldsField;
        private string CRCModeField;
        private string MIDLinesNarrowField;
        private string MIDLinesWideField;
        //private byte[] DSPFieldsByteField;
        //private byte[] CRCModeByteField;
        private string StartTimeStampField;
        private string EndTimeStampField;
        private string AuthorisationApplicationSenderField;
        private string LockingApplicationSenderField;
        private string ReservingDeviceIdField;
        private string FuellingTypeField;
        private string ErrorCodeField;


        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Type
        {
            get { return this.TypeField; }
            set { this.TypeField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DeviceID
        {
            get { return this.DeviceIdField; }
            set { this.DeviceIdField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PumpNo
        {
            get { return this.PumpNoField; }
            set { this.PumpNoField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string NozzleNo
        {
            get { return this.NozzleNoField; }
            set { this.NozzleNoField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string TransactionSeqNo
        {
            get { return this.TransactionSeqNoField; }
            set { this.TransactionSeqNoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string State
        {
            get { return this.StateField; }
            set { this.StateField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ReleaseToken
        {
            get { return this.ReleaseTokenField; }
            set { this.ReleaseTokenField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Type",
            Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string TypePOS
        {
            get { return this.TypePOSField; }
            set { this.TypePOSField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public FuelModeElementClass FuelMode
        {
            get { return this.FuelModeField; }
            set { this.FuelModeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Amount
        {
            get { return this.AmountField; }
            set { this.AmountField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Volume
        {
            get { return this.VolumeField; }
            set { this.VolumeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string UnitPrice
        {
            get { return this.UnitPriceField; }
            set { this.UnitPriceField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string VolumeProduct1
        {
            get { return this.VolumeProduct1Field; }
            set { this.VolumeProduct1Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string VolumeProduct2
        {
            get { return this.VolumeProduct2Field; }
            set { this.VolumeProduct2Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductNo1
        {
            get { return this.ProductNo1Field; }
            set { this.ProductNo1Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductNo2
        {
            get { return this.ProductNo2Field; }
            set { this.ProductNo2Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductUM
        {
            get { return this.ProductUMField; }
            set { this.ProductUMField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductName
        {
            get { return this.ProductNameField; }
            set { this.ProductNameField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string BlendRatio
        {
            get { return this.BlendRatioField; }
            set { this.BlendRatioField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string DSPFields
        {
            get { return this.DSPFieldsField; }
            set { this.DSPFieldsField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string CRCMode
        {
            get { return this.CRCModeField; }
            set { this.CRCModeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string MIDLinesNarrow
        {
            get { return this.MIDLinesNarrowField; }
            set { this.MIDLinesNarrowField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string MIDLinesWide
        {
            get { return this.MIDLinesWideField; }
            set { this.MIDLinesWideField = value; }
        }

        //[System.Xml.Serialization.XmlElementAttribute("DSPFields", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        //public byte[] DSPFieldsByte
        //{
        //    get
        //    {
        //        return this.DSPFieldsByteField;
        //    }
        //    set
        //    {
        //        this.DSPFieldsByteField = value;
        //    }
        //}

        //[System.Xml.Serialization.XmlElementAttribute("CRCMode", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        //public byte[] CRCModeByte
        //{
        //    get
        //    {
        //        return this.CRCModeByteField;
        //    }
        //    set
        //    {
        //        this.CRCModeByteField = value;
        //    }
        //}

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string StartTimeStamp
        {
            get { return this.StartTimeStampField; }
            set { this.StartTimeStampField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string EndTimeStamp
        {
            get { return this.EndTimeStampField; }
            set { this.EndTimeStampField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string LockingApplicationSender
        {
            get { return this.LockingApplicationSenderField; }
            set { this.LockingApplicationSenderField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string AuthorisationApplicationSender
        {
            get { return this.AuthorisationApplicationSenderField; }
            set { this.AuthorisationApplicationSenderField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ReservingDeviceId
        {
            get { return this.ReservingDeviceIdField; }
            set { this.ReservingDeviceIdField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FuellingType
        {
            get { return this.FuellingTypeField; }
            set { this.FuellingTypeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ErrorCode
        {
            get { return this.ErrorCodeField; }
            set { this.ErrorCodeField = value; }
        }
    }

    [System.SerializableAttribute()]
    [XmlRootAttribute(ElementName = "ServiceResponse", Namespace = "")]
    public partial class ServiceResponseGetFuelSaleTrxDetailsV03 : ServiceResponse
    {
        private ServiceResponseFDCdataGetFuelSaleTrxDetailsV03[] FDCdataField;


        [System.Xml.Serialization.XmlElementAttribute("FDCdata", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public ServiceResponseFDCdataGetFuelSaleTrxDetailsV03[] FDCdata
        {
            get { return this.FDCdataField; }
            set { this.FDCdataField = value; }
        }

        public ServiceResponseGetFuelSaleTrxDetailsV03()
        {
            RequestType = "GetFuelSaleTrxDetails";
        }
    }

    [System.SerializableAttribute()]
    public partial class ServiceResponseFDCdataGetFuelSaleTrxDetailsV03
    {
        private string FDCTimeStampField;
        private ServiceResponseDeviceClassGetFuelSaleTrxDetailsV03[] DeviceClassField;
        private string FDCStatusField;


        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FDCTimeStamp
        {
            get { return this.FDCTimeStampField; }
            set { this.FDCTimeStampField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute("DeviceClass", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)
        ]
        public ServiceResponseDeviceClassGetFuelSaleTrxDetailsV03[] DeviceClass
        {
            get { return this.DeviceClassField; }
            set { this.DeviceClassField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FDCStatus
        {
            get { return this.FDCStatusField; }
            set { this.FDCStatusField = value; }
        }
    }


    [System.SerializableAttribute()]
    public partial class ServiceResponseDeviceClassGetFuelSaleTrxDetailsV03
    {
        private string TypeField;
        private string DeviceIdField;
        private string PumpNoField;
        private string TransactionNoField; // v03 field
        private string StateField;
        private string ReleaseTokenField;
        private string TypePOSField;
        private string FuelModeField;
        private string AmountField;
        private string VolumeField;
        private string UnitPriceField;
        private string VolumeProduct1Field;
        private string VolumeProduct2Field;
        private string NozzleNoField;
        private string Product1NoField;
        private string Product2NoField;
        private string ProductNameField;
        private string ProductUMField;
        private string BlendRatioField;
        private string DSPFieldsField;
        private string CRCModeField;
        //private byte[] DSPFieldsByteField;
        //private byte[] CRCModeByteField;
        private string StartTimeStampField;
        private string EndTimeStampField;


        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Type
        {
            get { return this.TypeField; }
            set { this.TypeField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DeviceID
        {
            get { return this.DeviceIdField; }
            set { this.DeviceIdField = value; }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PumpNo
        {
            get { return this.PumpNoField; }
            set { this.PumpNoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string State
        {
            get { return this.StateField; }
            set { this.StateField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string TransactionNo
        {
            get { return this.TransactionNoField; }
            set { this.TransactionNoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ReleaseToken
        {
            get { return this.ReleaseTokenField; }
            set { this.ReleaseTokenField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Type",
            Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string TypePOS
        {
            get { return this.TypePOSField; }
            set { this.TypePOSField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string FuelMode
        {
            get { return this.FuelModeField; }
            set { this.FuelModeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Amount
        {
            get { return this.AmountField; }
            set { this.AmountField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Volume
        {
            get { return this.VolumeField; }
            set { this.VolumeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string UnitPrice
        {
            get { return this.UnitPriceField; }
            set { this.UnitPriceField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string VolumeProduct1
        {
            get { return this.VolumeProduct1Field; }
            set { this.VolumeProduct1Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string VolumeProduct2
        {
            get { return this.VolumeProduct2Field; }
            set { this.VolumeProduct2Field = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string NozzleNo
        {
            get { return this.NozzleNoField; }
            set { this.NozzleNoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Product1No
        {
            get { return this.Product1NoField; }
            set { this.Product1NoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Product2No
        {
            get { return this.Product2NoField; }
            set { this.Product2NoField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductUM
        {
            get { return this.ProductUMField; }
            set { this.ProductUMField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ProductName
        {
            get { return this.ProductNameField; }
            set { this.ProductNameField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string BlendRatio
        {
            get { return this.BlendRatioField; }
            set { this.BlendRatioField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string DSPFields
        {
            get { return this.DSPFieldsField; }
            set { this.DSPFieldsField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string CRCMode
        {
            get { return this.CRCModeField; }
            set { this.CRCModeField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string StartTimeStamp
        {
            get { return this.StartTimeStampField; }
            set { this.StartTimeStampField = value; }
        }

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string EndTimeStamp
        {
            get { return this.EndTimeStampField; }
            set { this.EndTimeStampField = value; }
        }
    }
}