diff --git a/backend/src/tools/gebietseroberung/routes.js b/backend/src/tools/gebietseroberung/routes.js index 26f047d..5640438 100644 --- a/backend/src/tools/gebietseroberung/routes.js +++ b/backend/src/tools/gebietseroberung/routes.js @@ -588,8 +588,15 @@ router.post('/:id/resign', authenticate, (req, res) => { if (game.owner_id !== me && game.opponent_id !== me) return res.status(403).json({ error: 'Kein Zugriff' }); if (game.status !== 'active') return res.status(400).json({ error: 'Spiel bereits beendet' }); - const winner = game.owner_id === me ? game.opponent_id : game.owner_id; - db.prepare(`UPDATE geo_games SET status='finished', winner_id=?, updated_at=datetime('now','localtime') WHERE id=?`).run(winner, game.id); + const winner = game.owner_id === me ? game.opponent_id : game.owner_id; + // move_count auf min. 2 setzen damit Spiel in Liste + Leaderboard erscheint + // seen_by: aufgebender Spieler hat es gesehen, Gewinner noch nicht + const newMoveCount = Math.max(game.move_count || 0, 2); + const seenBy = JSON.stringify([me]); // nur der Aufgebende hat es "gesehen" + db.prepare(` + UPDATE geo_games SET status='finished', winner_id=?, move_count=?, seen_by=?, + updated_at=datetime('now','localtime') WHERE id=? + `).run(winner, newMoveCount, seenBy, game.id); const myName = db.prepare('SELECT username FROM users WHERE id=?').get(me)?.username || 'Jemand'; sendPush(winner, '⬡ Hex Wars gewonnen!', `${myName} hat aufgegeben. Du gewinnst! 🎉`); res.json({ ok: true });