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 EnterExitCostDto
    {
    }

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

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

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

        /// <summary>
        /// 团组Id
        /// </summary>
        public int DiId { 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; }

        #endregion

        #endregion

        #region 国际旅费

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

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

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


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

        /// <summary>
        ///  国际旅费合计（公务舱）
        /// </summary>
        public decimal OutsaideGWPay { get; set; }

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

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

        /// <summary>
        ///  国外城市间交通费
        /// </summary>
        public decimal CityTranffic { 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<DayAndCostAddView>? QuarterageData { get; set; }

        #endregion

        #region 伙食费

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

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

        #endregion

        #region 公杂费

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

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

        #endregion

        #region 培训费

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

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

        #endregion

        #region 最下面 选择框状态

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

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

        #endregion

    }

    /// <summary>
    /// 团组模块 - 出入境国家费用标准 Page List
    /// </summary>
    public class NationalTravelFeePageDto : DtoBase
    {
        /// <summary>
        /// 国家
        /// </summary>
        public string Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string City { get; set; }
    }

    /// <summary>
    /// 团组模块 - 出入境国家费用标准 
    /// 根据国家城市查询Dto
    /// </summary>
    public class NationalTravelFeeByCountryAndCityDto : PortDtoBase
    {
        /// <summary>
        /// 国家
        /// </summary>
        public string Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string City { get; set; }

    }

    /// <summary>
    /// 出入境费用子项删除
    /// </summary>
    public class EnterExitCostSubItemDelDto : DelBaseDto
    { }

    /// <summary>
    /// 团组模块 - 出入境国家费用标准 - Del
    /// </summary>
    public class NationalTravelFeeDelDto : DelBaseDto
    {
        
    }

    /// <summary>
    /// 团组模块 - 出入境国家费用标准 - Add Or Update Dto
    /// </summary>
    public class NationalTravelFeeOperateDto:PortDtoBase
    {
        /// <summary>
        /// 编号
        /// add Id = 0 Or Update Id=Id值
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 创建者Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 洲别
        /// </summary>
        public string? Continent { get; set; }

        /// <summary>
        /// 国家
        /// </summary>
        public string? Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string? City { get; set; }

        /// <summary>
        /// 币种
        /// Sys_SetData STid=66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 住宿费
        /// </summary>
        public decimal? RoomCost { get; set; } = 0;

        /// <summary>
        /// 伙食费
        /// </summary>
        public decimal? FoodCost { get; set; } = 0;

        /// <summary>
        /// 公杂费 
        /// </summary>
        public decimal? PublicCost { get; set; } = 0;

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }
}
