Files
Pf2eDataScrapper/Pf2e/Database/Model/Structure/Domain.cs
T

79 lines
2.7 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Pf2e.Database.Model.Base;
using Pf2e.Database.Model.Enum;
using Pf2e.Database.Model.Structure.DeityRelation;
namespace Pf2e.Database.Model.Structure;
/// <summary>
/// Домен.
/// </summary>
[EntityOfType(EntityType.Domain)]
public class Domain : IEntity
{
/// <inheritdoc/>
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Column(Order = 1)]
[Comment("Идентификатор")]
public int Id { get; set; }
/// <inheritdoc/>
public Entity Entity { get; set; } = null!;
/// <summary>
/// Идентификатор заклинания домена.
/// </summary>
[Column(Order = 2)]
[Comment("Заклинание домена")]
public int DomainSpellId { get; set; }
/// <summary>
/// Идентификатор продвинутого заклинания домена.
/// </summary>
[Column(Order = 3)]
[Comment("Продвинутое заклинание домена")]
public int AdvancedDomainSpellId { get; set; }
/// <summary>
/// Идентификатор апокрифического заклинания домена.
/// </summary>
[Column(Order = 4)]
[Comment("Апокрифическое заклинание домена")]
public int? ApocryphalSpellId { get; set; }
/// <summary>
/// Идентификатор продвинутого апокрифического заклинания домена.
/// </summary>
[Column(Order = 5)]
[Comment("Продвинутое апокрифическое заклинание домена")]
public int? AdvancedApocryphalSpellId { get; set; }
/// <summary>
/// Заклинание домена.
/// </summary>
public virtual Spell DomainSpell { get; set; } = null!;
/// <summary>
/// Продвинутое заклинание домена.
/// </summary>
public virtual Spell AdvancedDomainSpell { get; set; } = null!;
/// <summary>
/// Апокрифическое заклинание домена.
/// </summary>
public virtual Spell? ApocryphalSpell { get; set; }
/// <summary>
/// Продвинутое апокрифическое заклинание домена.
/// </summary>
public virtual Spell? AdvancedApocryphalSpell { get; set; }
/// <summary>
/// Связи с божествами, которые используют этот домен.
/// </summary>
public virtual ICollection<DeityDomain> DeityDomains { get; set; } = new List<DeityDomain>();
}