| | | 1 | | using System.ComponentModel.DataAnnotations; |
| | | 2 | | using System.ComponentModel.DataAnnotations.Schema; |
| | | 3 | | using System.Text.Json.Serialization; |
| | | 4 | | |
| | | 5 | | namespace OzonDomains.Models.AccessControl; |
| | | 6 | | |
| | | 7 | | public class AccessProfile |
| | | 8 | | { |
| | 172 | 9 | | public int Id { get; set; } |
| | | 10 | | |
| | | 11 | | [Display(Name = "Название")] |
| | 251 | 12 | | public string? Name { get; set; } |
| | | 13 | | |
| | | 14 | | [Display(Name = "Доступные столбцы в таблице заказов")] |
| | 32 | 15 | | public List<string>? AvailableOrderColumns { get; set; } |
| | | 16 | | |
| | | 17 | | [JsonIgnore] |
| | 213 | 18 | | public virtual ICollection<DataScopeSet> DataScopeSets { get; set; } = new List<DataScopeSet>(); |
| | | 19 | | |
| | | 20 | | /// <summary> |
| | | 21 | | /// Объединение всех Items из всех прикреплённых наборов данных. |
| | | 22 | | /// Используется в логике фильтрации заказов. |
| | | 23 | | /// Если наборов нет — фильтрация не применяется (видны все данные). |
| | | 24 | | /// </summary> |
| | | 25 | | [NotMapped] |
| | | 26 | | [JsonIgnore] |
| | | 27 | | public IEnumerable<DataScopeSetItem> ScopeItems => |
| | 17 | 28 | | DataScopeSets?.SelectMany(s => s.Items) ?? Enumerable.Empty<DataScopeSetItem>(); |
| | | 29 | | } |