17 lines
717 B
TypeScript
17 lines
717 B
TypeScript
import type { EventAddonCatalogItem } from '../api';
|
|
|
|
export const scopeDefaults: Record<'photos' | 'gallery', string[]> = {
|
|
photos: ['extra_photos_500', 'extra_photos_2000'],
|
|
gallery: ['extend_gallery_30d', 'extend_gallery_90d'],
|
|
};
|
|
|
|
export function selectAddonKeyForScope(addons: EventAddonCatalogItem[], scope: 'photos' | 'gallery'): string {
|
|
const fallback = scope === 'photos' ? 'extra_photos_500' : 'extend_gallery_30d';
|
|
const filtered = addons.filter((addon) => addon.price_id && scopeDefaults[scope].includes(addon.key));
|
|
if (filtered.length) {
|
|
return filtered[0].key;
|
|
}
|
|
const scoped = addons.find((addon) => addon.price_id && addon.key.includes(scope));
|
|
return scoped?.key ?? fallback;
|
|
}
|