using Hncore.Pass.PaymentCenter.Domain;
using Hncore.Pass.PaymentCenter.Domain.Refund;
using System;
using System.Collections.Generic;
using System.Linq;
using static Hncore.Infrastructure.Extension.EnumExtension;

namespace Hncore.Pass.PaymentCenter.Response.Refund
{
    public class RefundExportResponse
    {
        private readonly List<EnumInfo> PaymentEnumList = EnumToList<PaymentType>();
        private readonly List<EnumInfo> RefundStatusEnumList = EnumToList<RefundStatus>();
        private readonly List<EnumInfo> PaymentMethodEnumList = EnumToList<PaymentMethod>();
        public string CompanyName { get; set; }
        public string ProjectName { get; set; }
        public string TransactionRefundId { get; set; }
        public string TransactionId { get; set; }
        public string PaymentRecordId { get; set; }
        public string OrderId { get; set; }
        public string RefundId { get; set; }
        public string RefundFee { get; set; }
        public int PaymentType { get; set; }
        public string PaymentTypeDesc
        {
            get { return PaymentEnumList.Where(x => x.Value == PaymentType).FirstOrDefault().Name; }
        }
        /// <summary>
        /// 支付渠道
        /// </summary>
        public int PaymentMethod { get; set; }
        public string PaymentChannelDesc
        {
            get
            {
                if (PaymentMethod == 0)
                    return "";
                return PaymentMethodEnumList.Where(x => x.Value == PaymentMethod).FirstOrDefault().Name;
            }
        }
        public string OperatorName { get; set; }
        public DateTime? ApplyCancelTime { get; set; }
        public DateTime? RequestTime { get; set; }
        public DateTime? RefundSuccessTime { get; set; }
        public int RefundStatus { get; set; }
        public string RefundStatusDesc
        {
            get { return RefundStatusEnumList.Where(x => x.Value == RefundStatus).FirstOrDefault().Name; }
        }
        public string CancelReason { get; set; }

    }
}
