using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure.ClassRelation;
namespace Pf2eModel.Model.Structure;
///
/// Класс.
///
[EntityOfType(EntityType.Class)]
public class Class : 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 Hp { get; set; }
///
/// Флаг, указывающий на то, что класс является заклинательным.
///
[Column(Order = 3)]
[Comment("Заклинатель?")]
public bool Spellcasting { get; set; }
///
/// Традиция заклинаний класса.
///
[Column(Order = 6)]
[Comment("Традиция заклинаний")]
public SpellTradition? Tradition { get; set; } = null;
///
/// Количество дополнительных навыков.
///
[Column(Order = 7)]
[Comment("Дополнительные навыки")]
public int AdditionalTrainedSkills { get; set; }
///
/// Аттрибуты класса.
///
public virtual ICollection ClassKeyAbilities { get; set; } = [];
///
/// Прогрессия класса.
///
public virtual ICollection ClassProgressions { get; set; } = [];
///
/// Навыки класса.
///
public virtual ICollection ClassTrainings { get; set; } = [];
///
/// Группы подклассов.
///
public virtual ICollection SubclassGroups { get; set; } = [];
}