//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-02-15 11:55:43 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;

namespace IRaCIS.Core.Domain.Models
{
    ///<summary>
    ///EmailNoticeConfig
    ///</summary>
    [Table("EmailNoticeConfig")]
    public class EmailNoticeConfig : Entity, IAuditUpdate, IAuditAdd,ISoftDelete
    {
        [JsonIgnore]
        public List<EmailNoticeUserType> EmailNoticeUserTypeList { get; set; }
        public string Code { get; set; } = String.Empty;

        public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }

        /// <summary> 标准类型 /// </summary>
        public CriterionType? CriterionTypeEnum { get; set; }

        /// <summary> 业务模块 /// </summary>
        public int BusinessModuleEnum { get; set; }

        /// <summary> 业务层级 /// </summary>
        public int BusinessLevelEnum { get; set; }

        /// <summary> 邮件类型 /// </summary>
        public int EmailTypeEnum { get; set; }

        /// <summary> 邮件加急类型 /// </summary>
        public int EmailUrgentEnum { get; set; }

        /// <summary> 定时周期 /// </summary>
        public string EmailCron { get; set; }=string.Empty;

        /// <summary> 邮件主题 /// </summary>
        public string EmailTopic { get; set; } = string.Empty;

        public string EmailTopicCN { get; set; } = string.Empty;

        /// <summary> 附件 /// </summary>
        public string AttachPath { get; set; } = string.Empty;

        public string AttachCNPath { get; set; } = string.Empty;

        public string EmailHtmlContent { get; set; } = string.Empty;

        public string EmailHtmlContentCN { get; set; } = string.Empty;

        public string Description { get; set; } = string.Empty;


        public string AttachName { get; set; }
        public string AttachNameCN { get; set; }






        /// <summary>
        /// 是否区分标准
        /// </summary>
        public bool IsDistinguishCriteria { get; set; }


        /// <summary>
        /// 是否需要回执
        /// </summary>
        [Required]
        public bool IsReturnRequired { get; set; }

        public bool IsAutoSend { get; set; }

        public bool IsEnable { get; set; }

        [Required]
        public DateTime CreateTime { get; set; }


        [Required]
        public Guid CreateUserId { get; set; }


        [Required]
        public Guid UpdateUserId { get; set; }
        [Required]
        public DateTime UpdateTime { get; set; }

        public bool IsDeleted { get; set; }

        public DateTime? DeletedTime { get; set; }

        public Guid? DeleteUserId { get; set; }

    }


    [Table("EmailNoticeUserType")]

    public class EmailNoticeUserType:Entity
    {
        [JsonIgnore]
        public EmailNoticeConfig EmailNoticeConfig { get; set; }

        public Guid EmailNoticeConfigId { get; set; }


        public UserTypeEnum UserType { get; set; }

        public EmailUserType EmailUserType { get; set; }
    }
}