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

namespace OASystem.Domain.Dtos.Groups
{
    /// <summary>
    /// 根据登录用户查询
    /// </summary>
    public class AirTicketResDto:DtoBase
    {
        public int DiId { get; set; } = 0;
        public int UserId { get; set; } = 0;
        public int IsPaySign { get; set; } = -1;

    }
   public class ItineraryAirTicketResDto
    {
        public int DiId { get; set; } = 0;
        public int UserId { get; set; } = 0;
        public string Language { get; set; }
    }
    /// <summary>
    /// 根据团组Id及
    /// </summary>
    public class AirTicketResDeriveDto
    {
       
        public int CreateUserId { get; set; } = 0;
    }
    public class AirTicketResByIdDto
    {
        public int Id { get; set; }
    }

    public class QueryClientInfoByDIIDDto
    {
        public int DIID { get; set; }
    }

    public class AirTicketResOpDto
    {
        /// <summary>
        /// 操作状态
        /// 1 添加 
        /// 2 修改 
        /// </summary>
        public int Status { get; set; }
        public AirTicketResOp AirTicketResOpData { get; set; }
        public CardPayment CardPaymentOpData { get; set; }

    }
    /// <summary>
    /// 机票费用录入表参数
    /// </summary>
    public class AirTicketResOp
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }

        public int DiId { get;set; }
        /// <summary>
        /// 舱类型
        /// </summary>
        public int CType { get; set; }
        /// <summary>
        /// 出票前报价
        /// </summary>
        public decimal PrePrice { get; set; }

        /// <summary>
        /// 出票前报价币种
        /// </summary>
        public int PreCurrency { get; set; }
        /// <summary>
        /// 机票全价
        /// </summary>
        public decimal Price { get; set; }
        /// <summary>
        /// 币种
        /// </summary>
        public int Currency { get; set; }
        /// <summary>
        /// 客户人数
        /// </summary>
        public int ClientNum { get; set; }
        /// <summary>
        /// 客人名称
        /// </summary>
        public string ClientName { get; set; }
        /// <summary>
        /// 是否值机
        /// </summary>
        public int IsCheckIn { get; set; }
        /// <summary>
        /// 是否选座
        /// </summary>
        public int IsSetSeat { get; set; }

        /// <summary>
        /// 是否购买行李服务
        /// </summary>
        public int IsPackage { get; set; }
        /// <summary>
        /// 是否行李直挂
        /// </summary>
        public int IsBagHandle { get; set; }
        /// <summary>
        /// 是否火车票出票选座
        /// </summary>
        public int IsTrain { get; set; }
        /// <summary>
        /// 航班日期
        /// </summary>
        public string FlightsDate { get; set; }

        /// <summary>
        /// 航班时间
        /// </summary>
        public string FlightsTime { get; set; }
        /// <summary>
        /// 航班号
        /// </summary>
        public string FlightsCode { get; set; }
        /// <summary>
        /// 城市A-B
        /// </summary>
        public string FlightsCity { get; set; }
        /// /// <summary>
        /// 内陆段航班描述
        /// </summary>
        public string FlightsDescription { get; set; }

        /// <summary>
        /// 报价说明
        /// </summary>、
        public string PriceDescription { get; set; }
        /// <summary>
        /// 机票编号
        /// </summary>
        public string TicketNumber { get; set; }
        /// <summary>
        /// 机票票号
        /// </summary>
        public string TicketCode { get; set; }
        /// <summary>
        /// 创建者Id
        /// </summary>
        public int CreateUserId { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

    }
    /// <summary>
    /// C表参数
    /// </summary>
    public class CardPayment
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        public int PayDId { get; set; }
        /// <summary>
        /// 消费方式
        /// </summary>
        public string ConsumptionPatterns { get; set; }
        /// <summary>
        /// 消费日期
        /// </summary>
        public string ConsumptionDate { get; set; }
        /// <summary>
        /// 卡类型
        /// </summary>
        public int CTDId { get; set; }
        /// <summary>
        /// 银行卡号
        /// </summary>
        public string BankNo { get; set; }
        /// <summary>
        /// 持卡人姓名
        /// </summary>
        public string CardholderName { get; set; }
        /// <summary>
        /// 付款金额
        /// </summary>
        public decimal PayMoney { get; set; }
        /// <summary>
        /// 付款币种 数据类型Id
        /// </summary>
        public int PaymentCurrency { get; set; }
        ///// <summary>
        ///// 当天汇率 计算
        ///// </summary>
        //public string DayRate { get; set; }
        /// <summary>
        /// 公司银行卡号
        /// </summary>
        public string CompanyBankNo { get; set; }
        /// <summary>
        /// 对方开户行
        /// </summary>
        public string OtherBankName { get; set; }
        /// <summary>
        /// 对方银行账号
        /// </summary>
        public string OtherSideNo { get; set; }
        /// <summary>
        /// 对方姓名
        /// </summary>
        public string OtherSideName { get; set; }
        /// <summary>
        /// 财务操作人 用户Id
        /// </summary>
        public int MFOperator { get; set; }
        /// <summary>
        /// 财务操作时间
        /// </summary>
        public string MFOperatorDate { get; set; }
        ///// <summary>
        ///// 部门经理是否审核 0否1是
        ///// </summary>
        //public int IsAuditDM { get; set; }
        ///// <summary>
        ///// 部门经理审核人 用户Id
        ///// </summary>
        //public int AuditDMOperate { get; set; }
        ///// <summary>
        ///// 部门经理审核时间
        ///// </summary>
        //public DateTime AuditDMDate { get; set; }
        ///// <summary>
        ///// 财务部是否审核  0否1是
        ///// </summary>
        //public int IsAuditMF { get; set; }
        ///// <summary>
        ///// 财务部审核人
        ///// </summary>
        //public int AuditMFOperate { get; set; }
        ///// <summary>
        ///// 财务部审核时间
        ///// </summary>
        //public DateTime AuditMFDate { get; set; }
        ///// <summary>
        ///// 总经理是否审核  0否1是
        ///// </summary>
        //public int IsAuditGM { get; set; }
        ///// <summary>
        ///// 总经理审核人
        ///// </summary>
        //public int AuditGMOperate { get; set; }
        ///// <summary>
        ///// 总经理审核时间
        ///// </summary>
        //public DateTime AuditGMDate { get; set; }
        ///// <summary> 
        ///// 是否付款  0否1是 判断进行
        ///// </summary> 
        //public int IsPay { get; set; }
        /// <summary>
        /// 团组外键编号
        /// </summary>
        public int DIId { get; set; }
        ///// <summary>
        ///// 指向表外键编号 机票费用录入表Id
        ///// </summary>
        //public int CId { get; set; }
        ///// <summary>
        ///// 指向标识 设置数据外键编号 固定机票 85
        ///// </summary>
        //public int CTable { get; set; }
        ///// <summary>
        ///// 此次付款百分比 固定1
        ///// </summary>
        //public decimal PayPercentage { get; set; }
        /// <summary>
        /// 此次付款金额
        /// </summary>
        public decimal PayThenMoney { get; set; }
        ///// <summary>
        ///// 上次付款百分比 查询并计算最近一次
        ///// </summary>
        //public decimal PayPercentageOld { get; set; }
        ///// <summary>
        ///// 上次付款金额 查询上一次
        ///// </summary>
        //public decimal PayThenMoneyOld { get; set; }
        ///// <summary>
        ///// 上次付款时间 查询上一次
        ///// </summary>
        //public DateTime UpdateDate { get; set; }
        /// <summary>
        /// 收款方
        /// </summary>
        public string Payee { get; set; }
        ///// <summary>
        ///// 人民币费用 换算
        ///// </summary>
        //[SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        //public decimal RMBPrice { get; set; }
        /// <summary>
        /// 费用标识
        /// </summary>
        public int OrbitalPrivateTransfer { get; set; }
        ///// <summary>
        ///// 超出预算比例 换算
        ///// </summary>
        //[SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        //public decimal ExceedBudget { get; set; }
        /// <summary>
        /// 创建者Id
        /// </summary>
        public int CreateUserId { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

    }

    /// <summary>
    /// 国家出入时间
    /// </summary>
    public class CountryDataTime
    {
        // 定义属性
        public string Code { get; set; } = string.Empty;
        public DateTime StartTime { get; set; } = DateTime.MinValue;
        public DateTime EndTime { get; set; } = DateTime.MinValue;
        public string Country { get; set; } = string.Empty;

        // 构造函数(可选)
        public CountryDataTime() { }

        public CountryDataTime(string code, DateTime startTime, DateTime endTime, string country)
        {
            this.Code = code;
            StartTime = startTime;
            EndTime = endTime;
            Country = country;
        }
    }

}