using Edge.Core.Parser.BinaryParser.Attributes;
using HengshanPaymentTerminal.Support;
using System;
using System.Collections.Generic;
using System.Text;

namespace HengshanPaymentTerminal.MessageEntity.Outgoing
{
    public class PaymentData : CardMessageBase
    {
        public PaymentData() : base(Command.PaymentData)
        {

        }

        [Format(10, EncodingType.BcdString, -90)]
        public string Asn { get; set; }

        [Format(4, EncodingType.BIN, -89)]
        public int PosTtc { get; set; }

        [Format(2, EncodingType.BIN, -88)]
        public ushort SeqNo { get; set; }

        [Format(3, EncodingType.BIN, -87)]
        public int FillingAmount { get; set; }

        [Format(3, EncodingType.BIN, -86)]
        public int PayAmount { get; set; }

        [Format(3, EncodingType.BIN, -85)]
        public int FillingVolume { get; set; }

        [Format(2, EncodingType.BIN, -84)]
        public ushort Price { get; set; }

        [Format(2, EncodingType.BIN, -83)]
        public ushort ProductCode { get; set; }

        [Format(16, EncodingType.BcdString, -82)]
        public string C_Name { get; set; }

        [Format(2, EncodingType.BIN, -81)]
        public ushort FPCode { get; set; }

        [Format(1, EncodingType.BIN, -80)]
        public PaymentProcessingResult Result { get; set; }

        [Format(1, EncodingType.BIN, -79)]
        public byte AdditionalInfoLength { get; set; }

        [EnumerableFormat("AdditionalInfoLength", -78)]
        public string AdditionalInfo { get; set; }
    }
}
