| | | 1 | | using System.ComponentModel.DataAnnotations; |
| | | 2 | | |
| | | 3 | | namespace OzonDomains.Models.Authorization; |
| | | 4 | | |
| | | 5 | | /// <summary> |
| | | 6 | | /// Страница или модуль приложения, используемые для построения меню и проверки доступа. |
| | | 7 | | /// </summary> |
| | | 8 | | public class AppPage |
| | | 9 | | { |
| | 167 | 10 | | public int Id { get; set; } |
| | | 11 | | |
| | | 12 | | /// <summary>Уникальный код страницы: "Orders.Index", "Products.Edit".</summary> |
| | | 13 | | [Required, MaxLength(200)] |
| | 208 | 14 | | public string Code { get; set; } = string.Empty; |
| | | 15 | | |
| | | 16 | | [Required, MaxLength(300)] |
| | 208 | 17 | | public string DisplayName { get; set; } = string.Empty; |
| | | 18 | | |
| | | 19 | | [MaxLength(100)] |
| | 75 | 20 | | public string? Area { get; set; } |
| | | 21 | | |
| | | 22 | | [Required, MaxLength(100)] |
| | 196 | 23 | | public string Controller { get; set; } = string.Empty; |
| | | 24 | | |
| | | 25 | | [Required, MaxLength(100)] |
| | 196 | 26 | | public string Action { get; set; } = string.Empty; |
| | | 27 | | |
| | 85 | 28 | | public int? ParentId { get; set; } |
| | 0 | 29 | | public virtual AppPage? Parent { get; set; } |
| | 107 | 30 | | public virtual ICollection<AppPage> Children { get; set; } = new List<AppPage>(); |
| | | 31 | | |
| | 75 | 32 | | public int SortOrder { get; set; } |
| | | 33 | | |
| | | 34 | | [MaxLength(100)] |
| | 75 | 35 | | public string? Icon { get; set; } |
| | | 36 | | |
| | | 37 | | /// <summary>Класс оформления (Bootstrap), например <c>link-success</c>, <c>text-info</c> — для отображения в матриц |
| | | 38 | | [MaxLength(50)] |
| | 0 | 39 | | public string? AccentClass { get; set; } |
| | | 40 | | |
| | | 41 | | /// <summary>Группирующий заголовок (не соответствует маршруту); чекбоксы прав в матрице не показываются.</summary> |
| | 0 | 42 | | public bool IsSectionHeader { get; set; } |
| | | 43 | | |
| | 149 | 44 | | public bool IsMenuItem { get; set; } = true; |
| | 163 | 45 | | public bool IsActive { get; set; } = true; |
| | | 46 | | |
| | 107 | 47 | | public DateTime CreatedAt { get; set; } = DateTime.UtcNow; |
| | 107 | 48 | | public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; |
| | | 49 | | |
| | 107 | 50 | | public virtual ICollection<AppField> Fields { get; set; } = new List<AppField>(); |
| | 107 | 51 | | public virtual ICollection<RolePagePermission> RolePermissions { get; set; } = new List<RolePagePermission>(); |
| | 107 | 52 | | public virtual ICollection<UserPageOverride> UserOverrides { get; set; } = new List<UserPageOverride>(); |
| | | 53 | | } |