diff --git a/src/app/api/admin/import/furni/route.ts b/src/app/api/admin/import/furni/route.ts index 1d2b6596f8..711fa8660c 100644 --- a/src/app/api/admin/import/furni/route.ts +++ b/src/app/api/admin/import/furni/route.ts @@ -168,6 +168,17 @@ export const GET = withAdmin( return apiOk({ totalInDb, inCatalog, notInCatalog, missingNitro }); } + // Live furnidata reconcile (without hotel RCON reload) + if (action === "live-reconcile") { + const furniReconcile = await reconcileFurniDataWithItemsBase(); + return apiOk({ + furniDataFixedIds: furniReconcile.fixedIds, + furniDataFixedOfferIds: furniReconcile.fixedOfferIds, + furniDataMissing: furniReconcile.missing, + furniDataConflicts: furniReconcile.conflicts, + }); + } + // Missing nitro endpoint: returns only imported items missing .nitro files if (action === "missing-nitro") { const pageNum = parseInt( diff --git a/src/components/admin/studio/studio-client.tsx b/src/components/admin/studio/studio-client.tsx index 3ec7bc1c66..c3c5179d68 100644 --- a/src/components/admin/studio/studio-client.tsx +++ b/src/components/admin/studio/studio-client.tsx @@ -159,6 +159,8 @@ export function StudioClient({ result = result.filter((i) => i.alreadyImported && i.nitroExists); else if (statusFilter === "missingNitro") result = result.filter((i) => i.alreadyImported && !i.nitroExists); + else if (statusFilter === "notImported") + result = result.filter((i) => !i.alreadyImported); } const sorted = [...result]; if (sortBy === "name") sorted.sort((a, b) => a.name.localeCompare(b.name));