using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Common;
using Pf2eModel.Model.Common.I18n;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure.DeityRelation;
namespace Pf2eModel.Model.Structure;
///
/// Божество.
///
[EntityOfType(EntityType.Deity)]
public class Deity : 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 DeityType Type { get; set; }
///
/// Категория божества.
///
[Column(Order = 3)]
[Comment("Категория божества")]
public string Category { get; set; } = null!;
///
/// Тип божественный силы.
///
[Column(Order = 4)]
[Comment("Тип божественной силы")]
public DeityFonts Fonts { get; set; }
///
/// Тип освящения.
///
[Column(Order = 5)]
[Comment("Тип освящения")]
public DeitySanctification Sanctification { get; set; }
///
/// Обязательное освящение.
///
[Column(Order = 6)]
[Comment("Обязательное освящение")]
public bool SanctificationMust { get; set; }
///
/// Заветы божества.
///
[Column(Order = 7)]
[Comment("Заветы божества")]
public LocaleString Edicts { get; set; } = [];
///
/// Анафемы божества.
///
[Column(Order = 8)]
[Comment("Анафемы божества")]
public LocaleString Anathema { get; set; } = [];
///
/// Религиозный символ божества.
///
[Column(Order = 9)]
[Comment("Религиозный символ божества")]
public LocaleString ReligiousSymbol { get; set; } = [];
///
/// Священное животное божества.
///
[Column(Order = 10)]
[Comment("Священное животное божества")]
public LocaleString SacredAnimal { get; set; } = [];
///
/// Область покровительства божества.
///
[Column(Order = 11)]
[Comment("Область покровительства божества")]
public LocaleString AreaOfConcern { get; set; } = [];
///
/// Атрибуты божества.
///
public ICollection DeityAttributes { get; set; } = new List();
///
/// Домены божества.
///
public ICollection DeityDomains { get; set; } = new List();
///
/// Заклинания божества.
///
public ICollection DeitySpells { get; set; } = new List();
///
/// Оружия божества.
///
public ICollection DeityWeapons { get; set; } = new List();
///
/// Навыки божества.
///
public ICollection Skills { get; set; } = new List();
}