import { fail } from "@sveltejs/kit"; const COLLECTION = "Stackq_Items"; function parseNum(val) { if (val === "" || val === null || val === void 0) return void 0; const n = Number(val); return Number.isFinite(n) ? n : void 0; } function parseBool(val) { return val === "on" || val === "true" || val === true; } const load = async ({ locals }) => { const list = await locals.pb.collection(COLLECTION).getFullList({ sort: "-created", expand: "Parent" }).catch((err) => { console.error(COLLECTION, err); return []; }); const itemsForParent = list.map((i) => ({ id: i.id, Item: i.Item, SKU: i.SKU })); return { items: list, itemsForParent }; }; const actions = { create: async ({ request, locals }) => { const form = await request.formData(); const Item = form.get("Item")?.trim() ?? ""; const SKU = form.get("SKU")?.trim() ?? ""; const Description = form.get("Description")?.trim() ?? ""; const UOM = form.get("UOM")?.trim() ?? ""; const Cost = parseNum(form.get("Cost")); const Vendor = form.get("Vendor")?.trim() ?? ""; const Catagory = form.get("Catagory")?.trim() ?? ""; const Sub_Catagory = form.get("Sub_Catagory")?.trim() ?? ""; const Has_Parent = parseBool(form.get("Has_Parent")); const Parent = form.get("Parent")?.trim() ?? ""; const Stock = parseBool(form.get("Stock")); if (!Item) return fail(400, { error: "Item name is required", form: "create" }); try { await locals.pb.collection(COLLECTION).create({ Item, SKU, Description, UOM: UOM || void 0, Cost: Cost ?? 0, Vendor, Catagory: Catagory || void 0, Sub_Catagory: Sub_Catagory || void 0, Has_Parent: !!Has_Parent, Parent: Parent || null, Stock: !!Stock }); } catch (e) { const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Create failed"; return fail(500, { error: message, form: "create" }); } return { success: true }; }, update: async ({ request, locals }) => { const form = await request.formData(); const id = form.get("id")?.trim(); if (!id) return fail(400, { error: "Missing id", form: "update" }); const Item = form.get("Item")?.trim() ?? ""; const SKU = form.get("SKU")?.trim() ?? ""; const Description = form.get("Description")?.trim() ?? ""; const UOM = form.get("UOM")?.trim() ?? ""; const Cost = parseNum(form.get("Cost")); const Vendor = form.get("Vendor")?.trim() ?? ""; const Catagory = form.get("Catagory")?.trim() ?? ""; const Sub_Catagory = form.get("Sub_Catagory")?.trim() ?? ""; const Has_Parent = parseBool(form.get("Has_Parent")); const Parent = form.get("Parent")?.trim() ?? ""; const Stock = parseBool(form.get("Stock")); if (!Item) return fail(400, { error: "Item name is required", form: "update" }); try { await locals.pb.collection(COLLECTION).update(id, { Item, SKU, Description, UOM: UOM || void 0, Cost: Cost ?? 0, Vendor, Catagory: Catagory || void 0, Sub_Catagory: Sub_Catagory || void 0, Has_Parent: !!Has_Parent, Parent: Parent || null, Stock: !!Stock }); } catch (e) { const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Update failed"; return fail(500, { error: message, form: "update" }); } return { success: true }; }, delete: async ({ request, locals }) => { const form = await request.formData(); const id = form.get("id")?.trim(); if (!id) return fail(400, { error: "Missing id", form: "delete" }); try { await locals.pb.collection(COLLECTION).delete(id); } catch (e) { const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Delete failed"; return fail(500, { error: message, form: "delete" }); } return { success: true }; } }; export { actions, load };