namespace SCHALE.Common.Database.ModelExtensions { public static class AccountExtensions { public static List AddCharacters(this AccountDB account, SCHALEContext context, params CharacterDB[] characters) { foreach (var character in characters) { character.AccountServerId = account.ServerId; context.Characters.Add(character); } return [.. characters]; } public static List AddEquipment(this AccountDB account, SCHALEContext context, params EquipmentDB[] equipmentDB) { foreach (var equipment in equipmentDB) { equipment.AccountServerId = account.ServerId; var existingEquipment = account.Equipment.FirstOrDefault(x => x.UniqueId == equipment.UniqueId); if (existingEquipment != null && equipment.BoundCharacterServerId == default) existingEquipment.StackCount += equipment.StackCount; else context.Equipment.Add(equipment); } return [.. equipmentDB]; } public static List AddWeapons(this AccountDB account, SCHALEContext context, params WeaponDB[] weapons) { foreach (var weapon in weapons) { weapon.AccountServerId = account.ServerId; context.Weapons.Add(weapon); } return [.. weapons]; } public static List AddItems(this AccountDB account, SCHALEContext context, params ItemDB[] items) { foreach (var item in items) { item.AccountServerId = account.ServerId; context.Items.Add(item); } return [.. items]; } } }