const express = require("express"); const router = express.Router(); const db = require("../database/database"); const auth = require("../middleware/auth"); router.get("/pages", auth, async (req, res) => { const userId = req.session.user.id; try { const [owned] = await db.query( ` SELECT page FROM user_inventory_pages WHERE user_id = ? ORDER BY page `, [userId], ); const [prices] = await db.query(` SELECT page, price FROM inventory_page_prices ORDER BY page `); const [[config]] = await db.query(` SELECT config_value FROM game_config WHERE config_key = 'inventory_max_pages' `); const maxPages = config ? config.config_value : 8; const ownedPages = owned.map((p) => p.page); // Seite 1 ist immer kostenlos und gilt als besessen if (!ownedPages.includes(1)) { ownedPages.unshift(1); } res.json({ ownedPages: ownedPages, prices: prices, maxPages: maxPages, }); } catch (err) { console.error(err); res.status(500).json({ error: "DB Fehler" }); } }); router.post("/buy-page", auth, async (req, res) => { const userId = req.session.user.id; try { const [[maxPage]] = await db.query( ` SELECT MAX(page) AS page FROM user_inventory_pages WHERE user_id = ? `, [userId], ); const nextPage = (maxPage.page || 1) + 1; const [[priceRow]] = await db.query( ` SELECT price FROM inventory_page_prices WHERE page = ? `, [nextPage], ); if (!priceRow) { return res.json({ error: "Max Seiten erreicht" }); } const price = priceRow.price; const [[currency]] = await db.query( ` SELECT gold FROM account_currency WHERE account_id = ? `, [userId], ); if (currency.gold < price) { const missing = price - currency.gold; return res.json({ error: "Nicht genug Gold", gold: currency.gold, price: price, missing: missing, }); } await db.query( ` UPDATE account_currency SET gold = gold - ? WHERE account_id = ? `, [price, userId], ); await db.query( ` INSERT INTO user_inventory_pages (user_id,page) VALUES (?,?) `, [userId, nextPage], ); res.json({ success: true, page: nextPage, }); } catch (err) { console.error(err); res.status(500).json({ error: "DB Fehler" }); } }); module.exports = router;