using IRaCIS.Core.Domain.Share;

namespace IRaCIS.Core.Domain.Models;

[Comment("后台 - 系统通知")]
[Table("SystemNotice")]
public class SystemNotice : BaseFullAuditEntity
{
    #region 导航属性
    [JsonIgnore]
    public List<SystemNoticeUserType> NoticeUserTypeList { get; set; } = new List<SystemNoticeUserType>();
    [JsonIgnore]
    public List<SystemNoticeUserRead> NoticeUserReadList { get; set; } = new List<SystemNoticeUserRead>();

    #endregion

    [MaxLength]
    public string NoticeContent { get; set; } = string.Empty;

    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; }

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

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

    public Guid? PublishedUserId { get; set; }

    public UserRole PublishedUser { get; set; }

    public DateTime? PublishedTime { get; set; }

}