using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; using Pf2eModel.Model.Base; using Pf2eModel.Model.Common.I18n; using Pf2eModel.Model.Enum; using Pf2eModel.Model.Structure.RitualRelation; namespace Pf2eModel.Model.Structure; [EntityOfType(EntityType.Ritual)] public class Ritual : IEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Column(Order = 1)] public int Id { get; set; } public Entity Entity { get; set; } = null!; [Column(Order = 2)] public int Level { get; set; } [Column(Order = 3)] [Comment("Продолжительность ритуала в секундах")] public int CastTime { get; set; } [Column(Order = 4)] [Comment("Время действия эффекта ритуала в секундах")] public int Duration { get; set; } [Column(Order = 5)] public ElementEnum[] Elements { get; set; } = []; [Column(Order = 6)] public int Range { get; set; } [Column(Order = 7)] public TrainingRank PrimaryCheckRank { get; set; } = TrainingRank.Trained; [Column(Order = 8)] public LocaleString? PrimaryCheckSuffix { get; set; } = null; [Column(Order = 9)] public int SecondaryCasters { get; set; } = 0; [Column(Order = 10)] public int SecondaryCastersMax { get; set; } = 0; [Column(Order = 11)] public LocaleString? SecondaryCastersSuffix { get; set; } = null; [Column(Order = 12)] public LocaleString? RangeString { get; set; } = null; [Column(Order = 13)] public LocaleString? Target { get; set; } = null; [Column(Order = 14)] public LocaleString? Cost { get; set; } = null; [Column(Order = 15)] public LocaleString? Requirement { get; set; } = null; public virtual RitualArea? Area { get; set; } = null; public virtual ICollection Checks { get; set; } = []; }