using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;

namespace AsbCloudApp.Data
{
    /// <summary>
    /// Роль пользователя платформы
    /// </summary>
    public class UserRoleDto : IId
    {
        /// <inheritdoc/>
        public int Id { get; set; }

        /// <summary>
        /// название
        /// </summary>
        [Required]
        [StringLength(50, MinimumLength = 1,ErrorMessage = "Допустимая длина названия роли от 1 до 50 символов")]
        public string Caption { get; set; } = null!;

        /// <summary>
        /// id типа роли
        /// </summary>
        public int IdType { get; set; }

        /// <summary>
        /// список разрешений
        /// </summary>
        public IEnumerable<PermissionDto> Permissions { get; set; } = Enumerable.Empty<PermissionDto>();

        /// <summary>
        /// Включенные роли
        /// </summary>
        public virtual IEnumerable<UserRoleDto> Roles { get; set; } = Enumerable.Empty<UserRoleDto>();
    }
}