feat(catalog): prevent and repair Arcturus emulator data errors
Block invalid catalog_items writes at the API level (points currency allowlist, non-negative prices, positive amount, limited stack >= sold count, unique sibling order numbers) and auto-assign unique order numbers on bulk create. Add a catalog-maintenance scan + transactional repair that fixes pre-existing rows: resets unsupported points_type, clamps negative costs, sets amount to 1, raises limited_stack, renumbers duplicate orders and deletes offers with missing page/item references. Surface the issue count and a fix button in the admin maintenance panel. Also: add enabled/retired flag to clone sources, classify poster and currency furniture in item-kind, and remove the obsolete update-Nitrov3.sh.
This commit is contained in:
1 parent
ad65d80d41
commit
3e69b72513
26 files changed
+17651
-3844
No files matched your search
@@ -48,6 +48,16 @@ describe("classifyCatalogItem", () => {
|
||||
expect(item({ item_name: "post_it" })).toBe("sticky");
|
||||
expect(item({ item_name: "postit" })).toBe("sticky");
|
||||
});
|
||||
it("classifies posters and currency furniture", () => {
|
||||
expect(item({ item_name: "poster100" })).toBe("poster");
|
||||
expect(item({ item_name: "poster5000" })).toBe("poster");
|
||||
expect(item({ item_name: "funtastic_four_poster" })).toBe("poster");
|
||||
expect(item({ item_name: "duckfountain" })).toBe("poster");
|
||||
expect(item({ item_name: "Swimming" })).toBe("poster");
|
||||
expect(item({ item_name: "CF_50000_Hucci" })).toBe("currency");
|
||||
expect(item({ item_name: "DF_102_10_bluechip" })).toBe("currency");
|
||||
expect(item({ item_name: "sofa" })).toBe("furni");
|
||||
});
|
||||
it("classifies everything else as furni", () => {
|
||||
expect(item({})).toBe("furni");
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user