using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.DL.Interfaces;

namespace WorkFlowCheck.DL.Entities
{
    public class Role : ISoftDeletableEntity, IAuditableEntity
    {
        public int Id { get; set; }
        public string RoleName { get; set; } = null!;
        public int? ParentId { get; set; }
        public virtual Role? Parent { get; set; }
        public bool IsAdmin { get; set; }
        public bool CanDownloadAPK { get; set; }
        public bool CanEnableBlocked { get; set; }
        public bool CanUseWebAdmin { get; set; }    
        public bool CanUseMobilApp { get; set; }
        public virtual ICollection<Role> Children { get; set; } = new List<Role>();
        public virtual ICollection<UserRole> UserRoles { get; set; } = new List<UserRole>();

        public bool IsDeleted { get; set; }
        public DateTime LastModAt { get; set; }
        public string LastModBy { get; set; } = null!;
        public DateTime CreatedAt { get; set; }
        public string CreatedBy { get; set; } = null!;
    }
}
