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

namespace IRaCIS.Core.Domain.Models
{
    ///<summary>
    ///SystemNotice
    ///</summary>
    [Table("SystemNotice")]
    public class SystemNotice : Entity, IAuditUpdate, IAuditAdd
    {
        [JsonIgnore]
        public  List<SystemNoticeUserType> NoticeUserTypeList { get; set; }=new List<SystemNoticeUserType>();
        [JsonIgnore]
        public List<SystemNoticeUserRead> NoticeUserReadList { get; set; }=new List<SystemNoticeUserRead>();

        [JsonIgnore]
        public User CreateUser { get; set; }


        /// <summary>
        /// NoticeContent
        /// </summary>
        [Required]
        public string NoticeContent { get; set; }

        /// <summary>
        /// CreateTime
        /// </summary>
        [Required]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// CreateUserId
        /// </summary>
        [Required]
        public Guid CreateUserId { get; set; }

        /// <summary>
        /// UpdateTime
        /// </summary>
        [Required]
        public DateTime UpdateTime { get; set; }

        /// <summary>
        /// UpdateUserId
        /// </summary>
        [Required]
        public Guid UpdateUserId { get; set; }



        public SystemNotice_NoticeTypeEnum NoticeTypeEnum { get; set; }

        public SystemNotice_NoticeLevelEnum NoticeLevelEnum { get; set; }

        public SystemNotice_ApplicableProjectEnum ApplicableProjectEnum { get; set; }

        public SystemNotice_NoticeModeEnum NoticeModeEnum { get; set; }

        public SystemNotice_NoticeStateEnum NoticeStateEnum { get; set; }


        public DateTime? StartDate { get; set; }

        public DateTime? EndDate { get; set; }

        [Required]
        public string FileName { get; set; }

        [Required]
        public string Path { get; set; }

        public Guid? PublishedUserId { get; set; }

        public User PublishedUser { get; set; }

        public DateTime? PublishedTime { get; set; }

    }

}
