<?php

require_once __DIR__ . '/functions.php';
require_once __DIR__ . '/app/ledger.php';

$pdo = app_db_pdo();
$user = saas_require_login();

if (!saas_user_has_role('owner', $user)) {
    http_response_code(403);
    exit('Nur der Inhaber kann den Mandanten löschen.');
}

$tenantId = (int)$user['tenant_id'];
$isDefaultTenant = ledger_is_default_tenant($pdo, $tenantId);
$errors = [];
$confirmInput = '';

if (!$isDefaultTenant && $_SERVER['REQUEST_METHOD'] === 'POST') {
    app_require_csrf();
    $confirmInput = trim((string)($_POST['confirm_slug'] ?? ''));

    if ($confirmInput !== $user['tenant_slug']) {
        $errors[] = 'Bitte das Kundenkürzel exakt eingeben, um die Löschung zu bestätigen.';
    } else {
        // Loeschen der tenants-Zeile kaskadiert per FK auf alles
        // tenant-scoped (participants, ledger_entries, notices,
        // tenant_memberships, audit_log, outbound_emails,
        // payment_import_batches/rows, tenant_settings). users bleiben
        // erhalten, da ein Login-Konto zu mehreren Mandanten gehoeren kann.
        $pdo->prepare('DELETE FROM tenants WHERE id = ?')->execute([$tenantId]);
        saas_logout();
        header('Location: landing.php?tenant_deleted=1');
        exit;
    }
}

include 'header.php';
include 'headerline.php';
include 'nav.php';
?>

<section id="banner">
    <div class="content">
        <h2>Mandant löschen</h2>

        <?php if ($isDefaultTenant): ?>
            <div class="hint-box error">
                <p>Dieser Mandant ist der migrierte Bestandsmandant und kann hier nicht
                selbstständig gelöscht werden. Bitte wende dich für diesen Fall an den
                Betreiber.</p>
            </div>
        <?php else: ?>
            <div class="hint-box error">
                <p><b>Diese Aktion kann nicht rückgängig gemacht werden.</b> Alle Daten von
                „<?php echo saas_html($user['tenant_name']); ?>" werden unwiderruflich gelöscht:
                Mitglieder, alle Buchungen, Hinweise, Importe, Mail-Log und das
                Admin-Protokoll. Ziehe vorher gegebenenfalls einen
                <a href="datenexport.php">Datenexport</a>.</p>
            </div>

            <?php if ($errors !== []): ?>
                <div class="hint-box error">
                    <?php foreach ($errors as $error): ?>
                        <p><?php echo saas_html($error); ?></p>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>

            <form method="post" action="mandant-loeschen.php">
                <?php echo app_csrf_field(); ?>
                <label for="confirm_slug">Zum Bestätigen das Kundenkürzel eingeben: <b><?php echo saas_html($user['tenant_slug']); ?></b></label>
                <input type="text" name="confirm_slug" id="confirm_slug" value="<?php echo saas_html($confirmInput); ?>" required>
                <ul class="actions">
                    <li><button type="submit">Mandant endgültig löschen</button></li>
                    <li><a href="konto.php" class="button alt">Abbrechen</a></li>
                </ul>
            </form>
        <?php endif; ?>
    </div>
</section>

<?php include 'footer.php'; ?>
