using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure.AncestryRelation;
namespace Pf2eModel.Model.Structure;
///
/// Родословная.
///
[EntityOfType(EntityType.Ancestry)]
public class Ancestry : 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 SizeEnum[] Size { get; set; } = [];
///
/// Количество очков здоровья.
///
[Column(Order = 3)]
[Comment("Количество очков здоровья")]
public int Hp { get; set; }
///
/// Скорость передвижения.
///
[Column(Order = 4)]
[Comment("Скорость передвижения")]
public int Speed { get; set; }
///
/// Тип зрения.
///
[Column(Order = 5)]
[Comment("Тип зрения")]
public VisionEnum VisionEnum { get; set; } = VisionEnum.Normal;
///
/// Коллекция повышениий аттрибутов.
///
public ICollection AncestryBoosts { get; set; } = [];
///
/// Коллекция сущностей родословной.
///
public ICollection AncestryItems { get; set; } = [];
///
/// Коллекция языков родословной.
///
public ICollection AncestryLanguages { get; set; } = [];
///
/// Коллекция наследий.
///
public ICollection Heritages { get; set; } = [];
}