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

namespace OASystem.Domain.Entities.Resource
{
    /// <summary>
    /// 公务出访表
    /// </summary>
    [SugarTable("Res_OfficialActivities")]
    public class Res_OfficialActivities : EntityBase
    {    /// <summary>
         /// 团组ID
         /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DiId { get; set; }

        /// <summary>
        /// 0带公务 1不带公务 2纯公务
        /// 邀请方 1  公务方 0 
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Type { get; set; }

        /// <summary>
        /// 所在国家
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(100)")]
        public string Country { get; set; }

        /// <summary>
        /// 所在区域(城市)
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
        public string Area { get; set; }

        /// <summary>-
        /// 公务单位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(MAX)")]
        public string Client { get; set; }
        /// <summary>
        /// 公务日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
        public string Date { get; set; }
        /// <summary>
        /// 精确时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
        public string Time { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(MAX)")]
        public string Address { get; set; }
        /// <summary>
        /// 联系人
        /// 可能会存在特殊字符 使用nverchar
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(120)")]
        public string Contact { get; set; }
        /// <summary>
        /// 联系人职务
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(50)")]
        public string Job { get; set; }
        /// <summary>
        /// 联系电话
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(120)")]
        public string Tel { get; set; }
        /// <summary>
        /// 公务形式
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int OfficialForm { get; set; }

        /// <summary>
        /// 公务方所属领域
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(100)")]
        public string Field { get; set; }

        /// <summary>
        /// 请示范例
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(500)")]
        public string ReqSample { get; set; }

        /// <summary>
        /// 公务方背景
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(MAX)")]
        public string Setting { get; set; }
        /// <summary>
        /// 着装要求
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(120)")]
        public string Dresscode { get; set; }
        /// <summary>
        /// 参会人员
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(MAX)")]
        public string Attendees { get; set; }
        /// <summary>
        /// 是否需要翻译
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsNeedTrans { get; set; }
        /// <summary>
        /// 翻译人员
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(120)")]
        public string Translators { get; set; }
        /// <summary>
        /// 翻译语种
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(120)")]
        public string Language { get; set; }
        /// <summary>
        /// 暂定行程
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(MAX)")]
        public string Trip { get; set; }

        /// <summary>
        /// 是否报批
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsSubmitApproval { get; set; }
        /// <summary>
        /// 是否付费
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsPay { get; set; }

        /// <summary>
        /// 确认邀请
        /// 0 未确认邀请 1 已确认邀请
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ConfirmTheInvitation { get; set; } = 0;

        /// <summary>
        /// 邮件截图
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(500)")]
        public string? ScreenshotOfMailUrl { get; set; }

        /// <summary>
        /// 邮箱/微信
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string? EmailOrWeChat { get; set; }

        /// <summary>
        /// 网址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string? Website { get; set; }

        /// <summary>
        /// 公务性质
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(250)")]
        public string Nature { get; set; } 
    }
}