<?php
// ============================================================
// come2canada.life — API: Öffentliches Formular
// Datei hochladen als: /c2c/api/formular.php
// KEIN Auth — öffentlich zugänglich für Interessenten
// ============================================================

require_once __DIR__ . '/bootstrap.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') err('Nur POST erlaubt', 405);

$b = body();
foreach (['vorname','nachname','email','berufsbezeichnung'] as $f) {
    if (empty($b[$f])) err("Pflichtfeld fehlt: $f");
}
if (!filter_var($b['email'], FILTER_VALIDATE_EMAIL)) err('Ungültige E-Mail-Adresse');

$pdo = db();

// Klient anlegen oder vorhandenen finden
$check = $pdo->prepare("SELECT id FROM klienten WHERE email = ?");
$check->execute([strtolower(trim($b['email']))]);
$existing = $check->fetch();

if ($existing) {
    $klientId = $existing['id'];
} else {
    $uuid = newUuid();
    $ins = $pdo->prepare("
        INSERT INTO klienten
          (uuid, vorname, nachname, email, telefon, geburtsland,
           wohnsitzland, staatsbuergerschaft, zivilstand, service)
        VALUES (?,?,?,?,?,?,?,?,?,?)
    ");
    $ins->execute([
        $uuid,
        trim($b['vorname']),
        trim($b['nachname']),
        strtolower(trim($b['email'])),
        $b['telefon']             ?? null,
        $b['geburtsland']         ?? null,
        $b['wohnsitzland']        ?? null,
        $b['staatsbuergerschaft'] ?? null,
        $b['zivilstand']          ?? null,
        $b['service']             ?? 'Vollständiges Portfolio 599 CAD',
    ]);
    $klientId = (int)$pdo->lastInsertId();
}

// Formular-Rohdaten speichern
$b['_meta'] = [
    'version'    => '1.0',
    'source'     => 'come2canada.life',
    'timestamp'  => date('c'),
    'klient_id'  => $klientId,
    'ip'         => $_SERVER['REMOTE_ADDR'] ?? null,
];
$stmt = $pdo->prepare("INSERT INTO formulare (klient_id, json_data, ip_adresse) VALUES (?,?,?)");
$stmt->execute([
    $klientId,
    json_encode($b, JSON_UNESCAPED_UNICODE),
    $_SERVER['REMOTE_ADDR'] ?? null,
]);

// Status auf analyse_ausstehend setzen
$pdo->prepare("UPDATE klienten SET status = 'analyse_ausstehend' WHERE id = ?")->execute([$klientId]);

logAktivitaet('formular_eingegangen', $klientId, "{$b['vorname']} {$b['nachname']} — {$b['email']}");

// Benachrichtigungs-E-Mail an Christian (optionaler PHP-Mailer)
$subject = "Neues c2c-Formular: {$b['vorname']} {$b['nachname']}";
$message = "Neues Aufnahmeformular eingegangen.\n\n"
         . "Name:  {$b['vorname']} {$b['nachname']}\n"
         . "Email: {$b['email']}\n"
         . "Land:  " . ($b['wohnsitzland'] ?? '—') . "\n"
         . "Beruf: " . ($b['berufsbezeichnung'] ?? '—') . "\n\n"
         . "Portal: " . C2C_BASE_URL . "/portal/\n";
@mail(MAIL_TO, $subject, $message, "From: " . MAIL_FROM);

ok([
    'klient_id'  => $klientId,
    'message'    => 'Formular erfolgreich eingegangen. Christian meldet sich innerhalb von 3 Werktagen.',
]);
