using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace YBEE.EQM.Core
{
    /// <summary>
    /// 角色，内置固定角色全部放内置固定角色组
    /// </summary>
    [Comment("角色")]
    public partial class SysRole : DEntityBase
    {
        /// <summary>
        /// 名称
        /// </summary>
        [Comment("名称")]
        [Required, StringLength(80)]
        public string Name { get; set; }

        /// <summary>
        /// 角色组ID
        /// </summary>
        [Comment("角色组ID")]
        [Required]
        public int SysRoleGroupId { get; set; }

        /// <summary>
        /// 角色类型
        /// </summary>
        [Comment("角色类型")]
        [Required]
        public RoleType RoleType { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Comment("备注")]
        [StringLength(200)]
        public string Remark { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [Comment("状态")]
        [Required]
        public CommonStatus Status { get; set; }

        /// <summary>
        /// 数据权限范围
        /// {
        ///     educationStages: [1, 2],
        ///     sysOrgIds: [101, 102],
        /// }
        /// </summary>
        [Comment("数据权限范围")]
        [Required, Column(TypeName = "json")]
        public string RoleDataScope { get; set; } = "{}";

        /// <summary>
        /// 一对一引用（角色组）
        /// </summary>
        public virtual SysRoleGroup SysRoleGroup { get; set; }
    }
}