export function mergeCampaignAvailability(existingAvailability, campaignIds) { const existingEnabled = existingAvailability?.enabled && typeof existingAvailability.enabled === "object" && !Array.isArray(existingAvailability.enabled) ? existingAvailability.enabled : {}; const normalizedCampaignIds = [ ...new Set(campaignIds.filter((id) => typeof id === "string" && id.length > 0)), ]; const campaignIdSet = new Set(normalizedCampaignIds); const preservedEntries = Object.entries(existingEnabled).filter( ([id]) => !campaignIdSet.has(id), ); return { schemaVersion: 1, enabled: Object.fromEntries([ ...preservedEntries, ...normalizedCampaignIds.map((id) => [id, true]), ]), }; }