using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Enum;
namespace Pf2eModel.Model.Structure;
///
/// Правило.
///
[EntityOfType(EntityType.Rule)]
public class Rule : IEntity
{
///
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
[Comment("Идентификатор")]
public int Id { get; set; }
///
public Entity Entity { get; set; } = null!;
///
/// Порядок отображения.
///
[Column(Order = 2)]
[Comment("Порядок отображения")]
public int Order { get; set; }
///
/// Идентификатор родительского правила.
///
[Column(Order = 3)]
[Comment("Родительского правило")]
public int? ParentId { get; set; } = null;
///
/// Родительское правило.
///
public Rule? Parent { get; set; } = null;
///
/// Дочерние правила.
///
public ICollection Children { get; set; } = [];
///
/// Хлебные крошки для отображения в интерфейсе.
///
public string[] Breadcrumbs { get; set; } = [];
}