using MadRunFabric.Common;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace MadRunFabric.Model
{ 
    public class Sys_Role_Info : IBaseModel<string>
    {
        /// <summary>
        /// id
        /// </summary>
        [Key]
        [BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]
        public string id { get; set; }

        /// <summary>
        /// 角色名字
        /// </summary>
        public string role_name { get; set; }

        /// <summary>
        /// 角色代码
        /// </summary>
        public string role_code { get; set; }

        /// <summary>
        /// 角色备注
        /// </summary>
        public string role_remark { get; set; }

        /// <summary>
        /// 项目数量限制 -1表示不受限制，1表示只允许一个项目，6表示最多6个  也就是不允许0个项目 （大于等于1小于等于设定值，负数表示不受数量限制）
        /// </summary>
        public int project_num { get; set; } = -1;

        /// <summary>
        /// 角色锁  上锁后当前角色用户均不能登录   0表示未上锁1表示上锁
        /// </summary>
        public int role_lock { get; set; } = 0;

        /// <summary>
        /// 排序字段
        /// </summary>
        public int sort { get; set; } = 0;

        /// <summary>
        /// 功能状态－（0：不可以用；1：可用 2：表示删除）
        /// </summary>
        public int state_flag { get; set; } = 1;

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime create_time
        {
            get
            {
                return _createtime.ToLocalTime();
            }
            set
            {
                _createtime = value.ToLocalTime();
            }
        }

        private DateTime _createtime = DateTime.Now.ToLocalTime();


        /// <summary>
        /// 创建人uid
        /// </summary>
        public string create_uid { get; set; }

        /// <summary>
        /// 最近修改时间
        /// </summary>
        public DateTime lastmodify_time
        {
            get
            {
                return _lastmodify_time.ToLocalTime();
            }
            set
            {
                _lastmodify_time = value.ToLocalTime();
            }
        }

        private DateTime _lastmodify_time;

        /// <summary>
        /// 最近修改人
        /// </summary>
        public string lastmodify_uid { get; set; }

        /// <summary>
        /// 最近删除时间
        /// </summary>
        public DateTime delete_time
        {
            get
            {
                return _delete_time.ToLocalTime();
            }
            set
            {
                _delete_time = value.ToLocalTime();
            }
        }

        private DateTime _delete_time;

        /// <summary>
        /// 最近删除人
        /// </summary>
        public string delete_uid { get; set; }

    }
}
