using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Edge.Core.Domain.FccOrderInfo.Output
{
    /// <summary>
    /// FCC预支付订单页对象
    /// </summary>
    public class PrepayOrderInfoOutput
    {
        /// <summary>
        /// 总数
        /// </summary>
        public int Total { get; set; }

        /// <summary>
        /// 订单
        /// </summary>
        public List<PrepayOrderInfo> List { get; set; }
    }

    /// <summary>
    /// fcc 预支付订单页数据对象
    /// </summary>
    public class PrepayOrderInfo
    {
        public PrepayOrderInfo(OrderInfo order)
        {
            this.StationName = order.StationName;
            this.MachineName = order.MachineName;

            this.Id = order.Id;
            this.Ttc = order.Ttc;
            this.AuthorizationTime = order.AuthorizationTime;
            this.EndTime = order.EndTime;
            this.PaymentTime = order.PaymentTime;
            this.NozzleNum = order.NozzleNum;
            this.OilName = order.OilName;
            this.PaymentStatus = order.GetPaystatus();
            this.CloundOrderId = order.CloundOrderId;
            this.Amount = order.Amount;
            this.Volume = order.Volume;
            this.AmountPayable = order.AmountPayable;
            this.Price = order.Price;
            this.RefundAmount = order.RefundAmount;
            this.UserName = order.UserName;
            this.PhoneNumber = order.PhoneNumber;
            this.PaymentName = order.PaymentName;
            this.AuthorizationStatus = order.GetAuthorizationStatus();
            this.VolumePayable = order.VolumePayable;
        }

        /// <summary>
        /// 油站名
        /// </summary>
        public string StationName { get; set; }

        /// <summary>
        /// 油机号
        /// </summary>
        public string MachineName { get; set; }

        /// <summary>
        /// 订单id
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 流水号
        /// </summary>
        public int Ttc { get; set; }

        /// <summary>
        /// 授权时间
        /// </summary>
        public DateTime AuthorizationTime { get; set; }

        /// <summary>
        /// 挂枪时间
        /// </summary>
        public DateTime? EndTime { get; set; }

        /// <summary>
        /// 交易时间
        /// </summary>
        public DateTime? PaymentTime { get; set; }

        /// <summary>
        /// 枪号
        /// </summary>
        public int NozzleNum { get; set; }

        /// <summary>
        /// 油品名
        /// </summary>
        public String OilName { get; set; }

        /// <summary>
        /// 云端id
        /// </summary>
        public long? CloundOrderId { get; set; }

        /// <summary>
        /// 实际加油金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 实际加油升数
        /// </summary>
        public decimal Volume { get; set; }

        /// <summary>
        /// 实际支付金额
        /// </summary>
        public decimal? AmountPayable { get; set; }

        /// <summary>
        /// 单价
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal? RefundAmount { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }


        /// <summary>
        /// 手机号
        /// </summary>
        public string PhoneNumber { get; set; }

        /// <summary>
        /// 支付类型名称
        /// </summary>
        public string PaymentName { get; set; }

        /// <summary>
        /// 预定升数
        /// </summary>
        public decimal? VolumePayable { get; set; }

        /// <summary>
        /// 授权状态
        /// </summary>
        public string AuthorizationStatus { get; set; }

        /// <summary>
        /// 支付状态
        /// </summary>
        public string PaymentStatus { get; set; }
    }
}
