# Transferdatei – Basar (Phase 2 + 3) & Marktplatz-Änderungen Stand: 2026-04-24 --- ## SQL-Änderungen ### Phase 2 – Preis-Spalte in basar_inventory ```sql -- Datenbank: wandelndes_dorf_game_test ALTER TABLE basar_inventory ADD COLUMN current_price DECIMAL(10,4) NOT NULL DEFAULT 0.0000 AFTER amount; ``` Status: ✅ ausgeführt --- ## Geänderte Dateien ### Phase 2 – Basar Kaufsystem X- game/src/Repository/BasarRepository.php (geändert) X- game/src/Service/BasarService.php (geändert) X- game/basar.php (geändert) X- game/admin/basar_verwalten.php (geändert) X- game/process_basar.php (NEU) X- game/cron/tasks/35_basar-preise-aktualisieren.php (NEU) X- game/cron/sequential_runner.sh (geändert – Task 35 eingetragen) ### Phase 3 – Marktplatz: Rückholgebühr + 24h-Sperre X- game/src/Repository/ShopRepository.php (geändert – markOfferPriceReduced()) X- game/src/Service/ShopService.php (geändert – updateOfferPrice + returnOfferToStorage) X- game/mein_laden.php (geändert – UI: Sperre, Countdown, Gebührenanzeige) X- templates/footer_game.php (geändert – deleteOfferModal: Gebührenhinweis) ## Geänderte Dateien (Phase 4 – Tägliches Kauflimit) X- game/src/Repository/BasarRepository.php (geändert – getDailyPurchased, addDailyPurchase, resetDailyPurchases, getDailyPurchasedForUser) X- game/src/Service/BasarService.php (geändert – DAILY_LIMIT, resetDailyLimits, getDailyBoughtForUser) X- game/process_basar.php (geändert – Limit-Check + addDailyPurchase in Transaktion) X- game/basar.php (geändert – Tageslimit-Spalte, Input-Max, Limit-Badge) X- game/cron/tasks/35_basar-preise-aktualisieren.php (geändert – resetDailyLimits() nach Preis-Update) ## Geänderte Dateien (Phase 5 – Basar-Geld fließt in Tresor) - game/process_basar.php (geändert – TresorRepository eingebunden, updateTresorTaler($totalCost) nach Taler-Abzug) ### Phase 3 – SQL ```sql -- Datenbank: wandelndes_dorf_game_test ALTER TABLE player_shop_offers ADD COLUMN last_price_reduced_at TIMESTAMP NULL DEFAULT NULL AFTER updated_at; ``` Status: ✅ ausgeführt ### Phase 4 – SQL ```sql -- Datenbank: wandelndes_dorf_game_test CREATE TABLE basar_daily_purchases ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, resource_id INT NOT NULL, amount_bought INT NOT NULL DEFAULT 0, purchase_date DATE NOT NULL, UNIQUE KEY uq_daily (user_id, resource_id, purchase_date), CONSTRAINT fk_bdp_resource FOREIGN KEY (resource_id) REFERENCES game_resources(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` Status: ✅ ausgeführt ---