using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure.FeatRelation;
namespace Pf2eModel.Model.Structure;
///
/// Способность.
///
[EntityOfType(EntityType.Feat)]
public class Feat : IEntity
{
///
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
[Comment("Идентификатор")]
public int Id { get; set; }
///
public Entity Entity { get; set; } = null!;
///
/// Категория способности.
///
[Column(Order = 3)]
[Comment("Категория способности")]
public FeatCategory Category { get; set; }
///
/// Уровень способности.
///
[Column(Order = 4)]
[Comment("Уровень способности")]
public int Level { get; set; }
///
/// Количество действий, необходимых для применения фита.
///
[Column(Order = 5)]
[Comment("Количество действий")]
public ActionEnum Actions { get; set; } = ActionEnum.Other;
///
/// Дополнительная информация.
///
[Column(Order = 6)]
[Comment("Дополнительная информация")]
public string? Extra { get; set; }
///
/// Архетипы, которые могут использовать эту способность.
///
public ICollection Archetypes { get; set; } = [];
///
/// Требования к получению способности.
///
public ICollection FeatPrerequisites { get; set; } = [];
}