using Hncore.Infrastructure.DDD;
using System;
using System.Collections.Generic;

namespace Hncore.Pass.Vpn.Domain
{
    public partial class ProductOrderEntity : EntityWithTime<int>, ITenant
    {      
        public int TenantId { get; set; }
        public int UserId { get; set; }
        public string UserName { get; set; }
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public int PackageId { get; set; }
        public string PackageName { get; set; }
        public int? CouponId { get; set; } = 0;
        public decimal? CouponAmount { get; set; }      
        public string OriginKey { get; set; }
        public string OrderName { get; set; }
        public string OrderNo { get; set; }
        public string TradeNo { get; set; }
        public OrderStatus OrderState { get; set; }
        public OrderType OrderType { get; set; }
        public PayType PayType { get; set; }

        public PayChannel PayChannel { get; set; } = PayChannel.WxPc;
        public int PayState { get; set; }
        public int ConnectCount { get; set; }
        public decimal OrderAmount { get; set; }
        public decimal PaymentAmount { get; set; }
        public decimal? AccountPayAmount { get; set; } = 0;
        public decimal? OtherPayAmount { get; set; } = 0;
        public decimal? DayPrice { get; set; } = 0;
        public int DayCount { get; set; } = 1;
        public int ClientType { get; set; }
        public int ChannelType { get; set; }
        public string Channel { get; set; }
        public int AccountCount { get; set; } = 1;        
        public string Remark { get; set; }
        public string Accounts { get; set; }
        public string AccountPwd { get; set; }
        public int RefundCount { get; set; }
        public decimal RefundAmount { get; set; }

        public string RefundRestTime { get; set; }

        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }

        public int? IsAutoRefund { get; set; } = 0;

        public decimal? BackAmount { get; set; } = 0;
        public string RefundReason { get; set; }
        public int agent_id {get; set;}

    }
}
