using RolemasterDb.App.Features; namespace RolemasterDb.App.Components.Shared; public sealed class CriticalBranchEditorModel { public string BranchKind { get; set; } = "conditional"; public string? ConditionKey { get; set; } public string ConditionText { get; set; } = string.Empty; public string ConditionJson { get; set; } = "{}"; public string RawText { get; set; } = string.Empty; public string DescriptionText { get; set; } = string.Empty; public string? RawAffixText { get; set; } public string ParsedJson { get; set; } = "{}"; public int SortOrder { get; set; } public List Effects { get; set; } = []; public static CriticalBranchEditorModel FromItem(CriticalBranchEditorItem item) => new() { BranchKind = item.BranchKind, ConditionKey = item.ConditionKey, ConditionText = item.ConditionText, ConditionJson = item.ConditionJson, RawText = item.RawText, DescriptionText = item.DescriptionText, RawAffixText = item.RawAffixText, ParsedJson = item.ParsedJson, SortOrder = item.SortOrder, Effects = item.Effects.Select(CriticalEffectEditorModel.FromItem).ToList() }; public CriticalBranchEditorItem ToItem() => new( BranchKind, ConditionKey, ConditionText, ConditionJson, RawText, DescriptionText, RawAffixText, ParsedJson, SortOrder, Effects.Select(effect => effect.ToItem()).ToList()); }