using OASystem.Domain.ViewModels.Groups;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Dtos.Groups
{
    public class EnterExitCostDraftDto
    {
    }

    public class EnterExitCostDraftSetViewPermissiionDto : PortDtoBase
    {
        public int[] UserIds { get; set; }
        public int DraftId { get; set; }

        public int CurrUserId { get; set; }
    }

    /// <summary>
    /// 出入境费用详情 Dto
    /// </summary>
    public class EnterExitCostDraftInfoByIdDto : PortDtoBase
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        public int CurrUserId { get; set; }
    }

    /// <summary>
    /// 出入境费用 Add And Update  Dto
    /// </summary>
    public class EnterExitCostDraftOpDto : PortDtoBase
    {
        public int UserId { get; set; }

        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 草稿名称
        /// </summary>
        public string DraftName { get; set; }

        #region 境内费用(其他费用)

        /// <summary>
        ///  境内费用(其他费用)选择框
        /// </summary>
        public int ChoiceOne { get; set; }

        /// <summary>
        /// 境内费用(其他费用)
        /// </summary>
        public decimal InsidePay { get; set; }

        #region 境内费用(其他费用)子项

        /// <summary>
        /// 签证费
        /// </summary>
        public decimal Visa { get; set; }

        /// <summary>
        /// 签证费描述
        /// </summary>
        public string? VisaRemark { get; set; }

        /// <summary>
        /// 疫苗费
        /// </summary>
        public decimal YiMiao { get; set; }

        /// <summary>
        /// 核酸检测费用
        /// </summary>
        public decimal HeSuan { get; set; }

        /// <summary>
        /// 服务费用
        /// </summary>
        public decimal Service { get; set; }

        /// <summary>
        /// 参展门票
        /// </summary>
        public decimal Ticket { get; set; }

        /// <summary>
        /// 保险费
        /// </summary>
        public decimal Safe { get; set; }

        public string FirstItemRemark { get; set; }

        #endregion

        #endregion

        #region 国际旅费

        /// <summary>
        ///  国际旅费合计选择框
        /// </summary>
        public int ChoiceTwo { get; set; }

        /// <summary>
        ///  经济舱小计选择框
        /// </summary>
        public int SumJJC { get; set; }

        /// <summary>
        ///  公务舱小计选择框
        /// </summary>
        public int SumGWC { get; set; }

        /// <summary>
        ///  公务舱小计选择框
        /// </summary>
        public int SumTDC { get; set; }


        #region 国际旅费子项
        /// <summary>
        /// 国际旅费合计(经济舱)
        /// </summary>
        public decimal OutsideJJPay { get; set; }

        /// <summary>
        ///  国际旅费合计(公务舱)
        /// </summary>
        public decimal OutsideGWPay { get; set; }

        /// <summary>
        /// 国际旅费合计(头等舱)
        /// </summary>
        public decimal OutsideTDPay { get; set; }

        /// <summary>
        ///  国际机票(经济舱)
        /// </summary>
        public decimal AirJJ { get; set; }

        /// <summary>
        ///  国际机票(公务舱)
        /// </summary>
        public decimal AirGW { get; set; }

        /// <summary>
        ///  国际机票(头等舱)
        /// </summary>
        public decimal AirTD { get; set; }

        /// <summary>
        ///  国外城市间交通费
        /// </summary>
        public decimal CityTranffic { get; set; }

        public string TwoItemRemark { get; set; }

        /// <summary>
        ///  多个币种存储
        ///  存储方式: 美元(USD):6.2350|.......|墨西哥比索(MXN):1.0000
        /// </summary>
        public List<CurrencyInfo>? Currencys { get; set; }

        #endregion

        #endregion

        #region 住宿费

        /// <summary>
        ///  住宿费合计选择框
        /// </summary>
        public int ChoiceThree { get; set; }

        /// <summary>
        /// 住宿费子项Data
        /// </summary>
        public List<DayAndCostDraftAddView>? QuarterageData { get; set; }

        #endregion

        #region 伙食费

        /// <summary>
        ///  伙食费合计选择框
        /// </summary>
        public int ChoiceFour { get; set; }

        /// <summary>
        /// 伙食费子项Data
        /// </summary>
        public List<DayAndCostDraftAddView>? BoardWagesData { get; set; }

        #endregion

        #region 公杂费

        /// <summary>
        ///  公杂费合计选择框
        /// </summary>
        public int ChoiceFive { get; set; }

        /// <summary>
        /// 公杂费子项Data
        /// </summary>
        public List<DayAndCostDraftAddView>? MiscellaneousFeeData { get; set; }

        #endregion

        #region 培训费

        /// <summary>
        ///  培训费用选择框
        /// </summary>
        public int ChoiceSix { get; set; }

        /// <summary>
        /// 培训费子项Data
        /// </summary>
        public List<DayAndCostDraftAddView>? TrainingExpenseData { get; set; }

        #endregion

        #region 其他费用

        /// <summary>
        ///  其他费用选择框
        /// </summary>
        public int OtherExpenses_Checked { get; set; }

        /// <summary>
        /// 其他费用子项Data
        /// </summary>
        public List<DayOtherPriceDraftAddView> DayOtherPriceData { get; set; }
        #endregion

        #region 最下面 选择框状态

        /// <summary>
        /// 经济舱选择框
        /// </summary>
        public int AirJJC_Checked { get; set; }

        /// <summary>
        /// 公务舱选择框
        /// </summary>
        public int AirGWC_Checked { get; set; }

        /// <summary>
        /// 公务舱选择框
        /// </summary>
        public int AirTDC_Checked { get; set; }

        #endregion

    }

    public class EnterExitCostDraftCorrelationTipsDto : PortDtoBase { }

    public class EnterExitCostDraftVisaTipsDto : PortDtoBase {

        public int DraftId { get; set; }
    }

    /// <summary>
    /// 出入境费用 - 表格导出 Dto
    /// </summary>
    public class EnterExitCostDraftDownloadDto : PortDtoBase
    {
        public int Id { get; set; }

        /// <summary>
        /// 模板类型
        /// 1 明细表
        /// 2 表格
        /// 3 团组成员名单
        /// </summary>
        public int ExportType { get; set; }

        /// <summary>
        /// 类型Id
        /// </summary>
        public int SubTypeId { get; set; }
    }

    /// <summary>
    /// 出入境费用 - 一键清空 dto
    /// </summary>
    public class EnterExitCostDraftOneClickEmptyDto : PortDtoBase
    {
        public int UserId { get; set; }

        public int Id { get; set; }
    }

    public class EnterExitCostDraftOtherExpensesDelDto : DelBaseDto { }


    public class EnterExitCostDraftImportDataDto: PortDtoBase {
        public int UserId { get; set; }
        public int DraftId { get; set; }
        public int GroupId { get; set; }

    }
}