using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using OASystem.Domain.Dtos;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.ViewModels.QiYeWeChat;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.ViewModels.Groups
{
    /// <summary>
    /// 接团信息
    /// 返回视图
    /// </summary>
    public class DelegationInfoView : Grp_DelegationInfo { }

    /// <summary>
    /// 接团信息详情 共享 Web
    /// 返回视图
    /// </summary>
    public class Web_ShareGroupInfoView
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 团名
        /// </summary>
        public string? TeamName { get; set; }

        /// <summary>
        /// 团号
        /// </summary>
        public string? TourCode { get; set; }
       
        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 出访国家
        /// </summary>
        public string? VisitCountry { get; set; }

        /// <summary>
        /// 出团开始日期 
        /// </summary>
        public DateTime VisitStartDate { get; set; }

        /// <summary>
        /// 出团结束日期 
        /// </summary>
        public DateTime VisitEndDate { get; set; }

        /// <summary>
        /// 出行天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出行人数
        /// </summary>
        public int VisitPNumber { get; set; }

    }

    /// <summary>
    /// 查询团组简略详情列表
    /// Page 根据Ctable And User 返回可操作的团 View
    /// </summary>
    public class GroupListByCTableAndUserIdView 
    {
        public int Row_Number { get; set; }
        public int Id { get; set; }
        
        /// <summary>
        /// 团组名
        /// </summary>
        public string? TeamName { get; set; }
        /// <summary>
        /// 团组Code 
        /// </summary>
        public string? TourCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 出访时间
        /// </summary>
        public string? VisitCountry { get; set; }


        /// <summary>
        /// 出访开始日期
        /// </summary>
        public string? VisitStartDate { get; set; }

        /// <summary>
        /// 出访结束日期
        /// </summary>
        public string? VisitEndDate { get; set; }
        

        /// <summary>
        /// 出访天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出访人数
        /// </summary>
        public int VisitPNumber { get; set; }

    }



    /// <summary>
    /// 接团信息详情 共享 Web
    /// 返回视图
    /// </summary>
    public class IOSOrAndroid_ShareGroupInfoView
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 团号
        /// </summary>
        public string? TourCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 出访国家
        /// </summary>
        public string? VisitCountry { get; set; }

        /// <summary>
        /// 出团开始日期 
        /// </summary>
        public DateTime VisitStartDate { get; set; }

        /// <summary>
        /// 出团结束日期 
        /// </summary>
        public DateTime VisitEndDate { get; set; }

        /// <summary>
        /// 出行天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出行人数
        /// </summary>
        public int VisitPNumber { get; set; }

    }

    /// <summary>
    /// 接团信息详情 共享
    /// 返回视图
    /// </summary>
    public class ShareGroupInfoIIView
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 团组名称
        /// </summary>
        public string? teamName { get; set; }
        /// <summary>
        /// 团号
        /// </summary>
        public string? TourCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 出访国家
        /// </summary>
        public string? VisitCountry { get; set; }

        /// <summary>
        /// 出团起止日期
        /// </summary>
        public string? VisitDate { get; set; }

        /// <summary>
        /// 出行天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出行人数
        /// </summary>
        public int VisitPNumber { get; set; }

    }

    /// <summary>
    /// 接团信息详情
    /// 返回视图
    /// </summary>
    public class DelegationInfoWebView
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 销售报价号
        /// </summary>
        public string? SalesQuoteNo { get; set; }

        /// <summary>
        /// 团号
        /// </summary>
        public string? TourCode { get; set; }
        /// <summary>
        /// 接团人ID
        /// </summary>
        public int JietuanOperator { get; set; }

        /// <summary>
        /// 团组等级
        /// </summary>
        public int TeamLevSId { get; set; }

        /// <summary>
        /// 团组类型
        /// </summary>
        public int TeamDid { get; set; }

        /// <summary>
        /// 团组名称
        /// </summary>
        public string? TeamName { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 客户所属公司
        /// </summary>
        public string? ClientUnit { get; set; }

        /// <summary>
        /// 出访国家
        /// </summary>
        public string? VisitCountry { get; set; }

        /// <summary>
        /// 出团日期
        /// </summary>
        public DateTime VisitDate { get; set; }

        /// <summary>
        /// 出行天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出行人数
        /// </summary>
        public int VisitPNumber { get; set; }

        /// <summary>
        /// 合同时间
        /// </summary>
        public DateTime TontractTime { get; set; }
        /// <summary>
        /// 预付期限
        /// </summary>
        public int PayDay { get; set; }

        /// <summary>
        /// 预付金额
        /// </summary>
        public decimal PaymentMoney { get; set; }

        /// <summary>
        /// 出访目的
        /// </summary>
        public string? VisitPurpose { get; set; }

        /// <summary>
        /// 特俗需求
        /// </summary>
        public string? SpecialNeeds { get; set; }

        /// <summary>
        /// 其他需求
        /// </summary>
        public string? OtherNeeds { get; set; }

        /// <summary>
        /// 出国任务审批部门名称
        /// </summary>
        public string? CGRWSPBMMC { get; set; }
        /// <summary>
        /// 出国任务审批文号
        /// </summary>
        public string? CGRWSPWH { get; set; }
        /// <summary>
        /// 政治审查部门名称
        /// </summary>
        public string? ZZSCBMMC { get; set; }
        /// <summary>
        /// 政治审查部门审批文号
        /// </summary>
        public string? ZZSCSPWH { get; set; }

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

        /// <summary>
        /// 手机号
        /// </summary>
        public string? TellPhone { get; set; }
        /// <summary>
        /// op提成等级
        /// </summary>
        public int OpRoyaltyLv { get; set; }
        /// <summary>
        /// 提成等级说明
        /// </summary>
        public string?  OpRoyaltyRemark { get; set; }


    }

    /// <summary>
    /// 接团信息列表
    /// 返回视图
    /// </summary>
    public class DelegationListView 
    {
        /// <summary>
        /// 主键Id
        /// 团组Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 销售报价号
        /// </summary>
        public string? SalesQuoteNo { get; set; }

        /// <summary>
        /// 团号
        /// </summary>
        public string? TourCode { get; set; }

        /// <summary>
        /// 接团操作人
        /// </summary>
        public string? JietuanOperator { get; set; }

        /// <summary>
        /// 团组等级Id
        /// </summary>
        public int TeamLevId { get; set; }

        /// <summary>
        /// 团组等级 
        /// </summary>
        public string? TeamLev { get; set; }

        /// <summary>
        /// 团组名称
        /// </summary>
        public string? TeamName { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string? ClientName { get; set; }

        /// <summary>
        /// 客户所属公司
        /// </summary>
        public string? ClientUnit { get; set; }

        /// <summary>
        /// 团组类型Id
        /// </summary>
        public int TeamTypeId { get; set; }

        /// <summary>
        /// 团组类型
        /// </summary>
        public string? TeamType { get; set; }

        /// <summary>
        /// 出团日期
        /// </summary>
        public DateTime VisitDate { get; set; }

        /// <summary>
        /// 出行天数
        /// </summary>
        public int VisitDays { get; set; }

        /// <summary>
        /// 出行人数
        /// </summary>
        public int VisitPNumber { get; set; }


        /// <summary>
        /// 是否操作完成 
        /// 0否1是
        /// </summary>
        public int IsSure { get; set; }
    }

    

    /// <summary>
    /// 团组信息 Page List
    /// </summary>
    public class DelegationPageListView : DelegationListView
    {
        /// <summary>
        /// 行号
        /// </summary>
        public int RowNumber { get; set; }
    }

    /// <summary>
    /// 团组信息 Page List
    /// </summary>
    public class DelegationPageCountView
    {
        /// <summary>
        /// 行号
        /// </summary>
        public int Count { get; set; }
    }

    /// <summary>
    /// 团组编号
    /// </summary>
    public class TeamCodeView 
    {
        public string TourCode { get; set; }
    }

    /// <summary>
    /// 销售编号
    /// </summary>
    public class SalesQuoteNoView
    {
        public string SalesQuoteNo { get; set; }
    }

    /// <summary>
    /// 团组名称
    /// 返回视图
    /// </summary>
    public class GroupNameView
    {

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

        /// <summary>
        /// 团组名称
        /// </summary>
        public string GroupName { get; set; }
    }

    /// <summary>
    /// 根据团组ID 查询客户
    /// </summary>
    public class CrmByGroupIdView
    {
        /// <summary>
        /// 团组Id
        /// </summary>
        public int GrpId { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string clientName { get; set; }

        /// <summary>
        /// 客户手机号
        /// </summary>
        public string Tel { get; set; }

        /// <summary>
        /// 客户身份证号码
        /// </summary>
        public string CerdNo { get; set; }
    }
}