const express = require('express');
const Database = require('better-sqlite3');

const router = express.Router();
const db = new Database('plusfit.db');

/* =========================
   GET /widerruf
   ========================= */
router.get('/', (req, res) => {
    res.render('widerruf');
});

/* =========================
   POST /widerruf
   ========================= */
router.post('/', (req, res) => {
    const { vertragsnummer } = req.body;

    const user = db.prepare(`
        SELECT *
        FROM users
        WHERE vertragsnummer = ?
    `).get(vertragsnummer);

    if (!user) {
        return res.render('widerruf', {
            error: 'Vertrag nicht gefunden.'
        });
    }

    if (user.status !== 'aktiv') {
        return res.render('widerruf', {
            error: 'Dieser Vertrag ist nicht widerrufbar.'
        });
    }

    if (new Date() > new Date(user.widerruf_moeglich_bis)) {
        return res.render('widerruf', {
            error: 'Die Widerrufsfrist ist abgelaufen.'
        });
    }

    db.prepare(`
        UPDATE users
        SET
            status = 'widerrufen',
            widerrufen_am = ?,
            widerrufen_von_ip = ?
        WHERE id = ?
    `).run(
        new Date().toISOString(),
        req.ip,
        user.id
    );

    res.render('widerrufErfolg', { vertragsnummer });
});

module.exports = router;
