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

namespace OASystem.Domain.Entities.Groups
{
    /// <summary>
    /// 团组 - 出入境费用
    /// </summary>
    [SugarTable("Grp_EnterExitCost")]
    public class Grp_EnterExitCost : EntityBase
    {
        /// <summary>
        /// 团组Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DiId { get; set; }

        /// <summary>
        /// 境内费用(其他费用)
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal InsidePay { get; set; }

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

        /// <summary>
        /// 签证费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal Visa { get; set; }

        /// <summary>
        /// 签证费描述
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string? VisaRemark { get; set; }

        /// <summary>
        /// 疫苗费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal YiMiao { get; set; }

        /// <summary>
        /// 核酸检测费用
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal HeSuan { get; set; }

        /// <summary>
        /// 服务费用
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal Service { get; set; }

        /// <summary>
        /// 参展门票
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal Ticket { get; set; }

        /// <summary>
        /// 保险费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal Safe { get; set; }

        #endregion


        /// <summary>
        /// 国际旅费合计（经济舱）
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal OutsideJJPay { get; set; }

        /// <summary>
        ///  国际旅费合计（公务舱）
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal OutsaideGWPay { get; set; }

        #region 国际旅费合计(经济舱\公务舱)

        /// <summary>
        ///  国际机票（经济舱）
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal AirJJ { get; set; }

        /// <summary>
        ///  国际机票（公务舱）
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal AirGW { get; set; }

        /// <summary>
        ///  国外城市间交通费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
        public decimal CityTranffic { get; set; }


        #region 汇率币种

        /// <summary>
        ///  美元
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal RateUSD { get; set; }

        /// <summary>
        ///  日元
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal RateJPY { get; set; }

        /// <summary>
        ///  欧元
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal RateEUR { get; set; }

        /// <summary>
        ///  英镑 
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal RateGBP { get; set; }

        /// <summary>
        ///  港币 
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal RateHKD { get; set; }


        /// <summary>
        ///  多个币种存储
        ///  存储方式： 美元(USD):6.2350|.......|墨西哥比索(MXN):1.0000
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string? CurrencyRemark { get; set; }

        #endregion

        #endregion

        #region 选择框状态

        /// <summary>
        ///  境内费用(其他费用)选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceOne { get; set; }

        /// <summary>
        ///  国际旅费合计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceTwo { get; set; }

        /// <summary>
        ///  经济舱小计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int SumJJC { get; set; }

        /// <summary>
        ///  公务舱小计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int SumGWC { get; set; }

        /// <summary>
        ///  住宿费合计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceThree { get; set; }

        /// <summary>
        ///  伙食费合计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceFour { get; set; }

        /// <summary>
        ///  公杂费合计选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceFive { get; set; }

        /// <summary>
        ///  境内费用(其他费用)选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChoiceSix { get; set; }

        /// <summary>
        /// 经济舱选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int AirJJC_Checked { get; set; }

        /// <summary>
        /// 公务舱选择框
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int AirGWC_Checked { get; set; }

        #endregion
    }
}
