diff --git a/src/app/api/tickets/tariffs/route.ts b/src/app/api/tickets/tariffs/route.ts index 6eadd24..037d7bb 100644 --- a/src/app/api/tickets/tariffs/route.ts +++ b/src/app/api/tickets/tariffs/route.ts @@ -18,6 +18,8 @@ export async function GET(): Promise { overrideAccess: true, }) + const ezyIdSet = new Set(ezyTariffs.map((t) => t.id)) + const merged = ezyTariffs .map((t) => { const dbRecord = dbTariffs.find((d) => d.ezy_id === t.id) @@ -34,9 +36,24 @@ export async function GET(): Promise { } }) .filter((v: T | null): v is T => v !== null) - .sort((a, b) => a.sort - b.sort) - return NextResponse.json({ tariffs: merged }) + // Include visible DB tariffs not present in ezy (e.g. dyvolis uses a separate ezy activity) + const dbOnly = dbTariffs + .filter((d) => d.ezy_id != null && !ezyIdSet.has(d.ezy_id as number)) + .map((d) => ({ + id: d.ezy_id as number, + name: (d.display_name ?? d.last_synced_name) as string, + price: (d.last_synced_price ?? 0) as number, + categoryTag: d.category_tag as string | null, + description: d.description ?? null, + image: d.image ?? null, + icon: d.icon ?? null, + sort: (d.sort ?? 0) as number, + })) + + const all = [...merged, ...dbOnly].sort((a, b) => a.sort - b.sort) + + return NextResponse.json({ tariffs: all }) } catch (err) { logger.error({ err }, 'Failed to get tariffs from ezy — trying DB fallback')