87 lines
3.0 KiB
C#
87 lines
3.0 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Pf2eModel.Model.Base;
|
|
using Pf2eModel.Model.Enum;
|
|
using Pf2eModel.Model.Structure.DeityRelation;
|
|
|
|
namespace Pf2eModel.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)]
|
|
[MaxLength(Pf2eDbContext.NameLength)]
|
|
[Comment("Название домена")]
|
|
public string Name { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Идентификатор заклинания домена.
|
|
/// </summary>
|
|
[Column(Order = 3)]
|
|
[Comment("Идентификатор заклинания домена")]
|
|
public int DomainSpellId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Идентификатор продвинутого заклинания домена.
|
|
/// </summary>
|
|
[Column(Order = 4)]
|
|
[Comment("Идентификатор продвинутого заклинания домена")]
|
|
public int AdvancedDomainSpellId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Идентификатор апокрифического заклинания домена.
|
|
/// </summary>
|
|
[Column(Order = 5)]
|
|
[Comment("Идентификатор апокрифического заклинания домена")]
|
|
public int? ApocryphalSpellId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Идентификатор продвинутого апокрифического заклинания домена.
|
|
/// </summary>
|
|
[Column(Order = 6)]
|
|
[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>();
|
|
}
|