using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using QMFrameWork.Data.Attributes;

namespace QMAPP.Entity.Sys
{
    /// <summary>
    /// 角色信息
    /// 创建者:郭佳伟
    /// 创建日期:2013.1.29
    /// </summary>
    [Serializable]
    [DBTable(TableName = "T_QM_ROLE", TimeStampColumn = "UpdateTime")]
    public class Role : BaseEntity 
    {
        /// <summary>
        /// 角色主键
        /// </summary>
        [DBColumn(ColumnName = "ROLEID", DataType = DbType.String, IsKey = true)]
        public string RoleID { get; set; }

        /// <summary>
        /// 组织机构编号
        /// </summary>
        [DBColumn(ColumnName = "ORGAID", DataType = DbType.String)]
        public string OrgaID { get; set; }

        /// <summary>
        /// 角色描述
        /// </summary>
        [DBColumn(ColumnName = "ROLEDESC", DataType = DbType.String)]
        public string RoleDESC { get; set; }

        /// <summary>
        /// 所在机构描述
        /// </summary>
        public string OrgaDESC { get; set; }

        /// <summary>
        /// 创建日期
        /// </summary>
        [DBColumn(ColumnName = "CREATEDATE", DataType = DbType.DateTime,DefaultValue=DataDefaultValue.SysDate)]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [DBColumn(ColumnName = "CREATEUSER", DataType = DbType.String)]
        public string CreateUser { get; set; }

        /// <summary>
        /// 更新日期
        /// </summary>
        [DBColumn(ColumnName = "UPDATEDATE", DataType = DbType.DateTime)]
        public DateTime UpdateTime { get; set; }

        /// <summary>
        /// 更新人
        /// </summary>
        [DBColumn(ColumnName = "UPDATEUSER", DataType = DbType.String)]
        public string UpdateUser { get; set; }

        /// <summary>
        /// 权限设置
        /// </summary>
        public List<RoleAuthority> Powers { get; set; }

        /// <summary>
        /// 是否选中
        /// </summary>
        public bool Selected { get; set; }

        /// <summary>
        /// 角色列表
        /// </summary>
        public List<Role> Roles { get; set; }

        /// <summary>
        /// 用户角色列表
        /// </summary>
        public IList<UserRole> UserRoles { get; set; }

        /// <summary>
        /// 是否修改
        /// </summary>
        public bool IsUpdate { get; set; }
    }
}