using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Pf2eModel.Model.Base; using Pf2eModel.Model.Common.I18n; using Pf2eModel.Model.Enum; using Pf2eModel.Model.Structure.SpellRelation; namespace Pf2eModel.Model.Structure; [EntityOfType(EntityType.Spell)] public class Spell : 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)] public bool IsFocus { get; set; } [Column(Order = 4)] public ActionEnum Actions { get; set; } = ActionEnum.Other; [Column(Order = 5)] [MaxLength(255)] public int? Duration { get; set; } = null; [Column(Order = 6)] public int Range { get; set; } [Column(Order = 7)] public SpellTradition[] Traditions { get; set; } = []; [Column(Order = 8)] public ElementEnum[] Elements { get; set; } = []; [Column(Order = 9)] public LocaleString? Trigger { get; set; } = null; [Column(Order = 10)] public LocaleString? Target { get; set; } = null; [Column(Order = 11)] public LocaleString? Cost { get; set; } = null; [Column(Order = 12)] public LocaleString? Requirement { get; set; } = null; /* [Column(Order = 4)] public bool Counteraction { get; set; } [Column(Order = 5)] public bool Sustained { get; set; } [Column(Order = 7)] [MaxLength(255)] public string Range { get; set; } = null!; [Column(Order = 8)] [MaxLength(255)] public string Requirements { get; set; } = null!; [Column(Order = 9)] [MaxLength(255)] public string Target { get; set; } = null!; [Column(Order = 10)] [MaxLength(255)] public string Time { get; set; } = null!; [Column(Order = 11)] public bool CanHeightening { get; set; } */ public virtual ICollection SpellAreas { get; set; } = []; public virtual ICollection SpellDefenses { get; set; } = new List(); }