<?php
/**
 * POST /api/corporate/submit.php
 * الإرسال النهائي + CRM + إشعار الإدارة
 */
require_once __DIR__ . '/../../config.php';
require_once __DIR__ . '/../../engine/Kernel.php';
$_kctx = Kernel::handle(['auth' => true, 'rate' => 'api']);
$_user = $_kctx['user']; $_userId = (int)$_user['id'];
header('Content-Type: application/json; charset=utf-8');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); exit; }

$b   = json_decode(file_get_contents('php://input'), true) ?? [];
$ref = preg_replace('/[^A-Z0-9\-]/', '', $b['ref'] ?? '');
if (!$ref) { http_response_code(400); die(json_encode(['error'=>'ref_required'])); }

try {
    $st = db()->prepare("SELECT * FROM corporate_inquiries WHERE ref_no=? AND phase_completed=5 LIMIT 1");
    $st->execute([$ref]);
    $inq = $st->fetch();
    if (!$inq) { http_response_code(404); die(json_encode(['error'=>'not_found_or_incomplete'])); }

    // CRM note
    try {
        db()->prepare("INSERT INTO crm_notes (user_id,staff_id,note_type,content) VALUES (0,NULL,'general',?)")
           ->execute(["[Corporate] طلب جديد من {$inq['org_name']} — Ref: {$ref} — Email: {$inq['contact_email']}"]);
    } catch (Throwable $ignored) {}

    // CRM timeline
    try {
        db()->prepare("INSERT INTO crm_timeline (user_id,event_type,summary) VALUES (0,'corporate_submission',?)")
           ->execute(["طلب حلول الشركات من {$inq['org_name']} ({$ref}) — تم الاستلام وقيد المراجعة"]);
    } catch (Throwable $ignored) {}

    // Notifications for all admin staff
    try {
        $staffIds = db()->query("SELECT id FROM staff_members WHERE is_active=1 LIMIT 5")->fetchAll(PDO::FETCH_COLUMN);
        foreach ($staffIds as $sid) {
            db()->prepare("INSERT INTO notifications (user_id,type,title,body,data) VALUES (?,?,?,?,?)")
               ->execute([$sid,'corporate_new',"🏢 طلب شركة جديد",
                "طلب من {$inq['org_name']} — {$inq['org_sector']} — {$inq['employees_count']} موظف",
                json_encode(['ref'=>$ref,'org'=>$inq['org_name']])]);
        }
    } catch (Throwable $ignored) {}

    // Email to client
    try {
        if (!empty($inq['contact_email'])) {
            $to      = $inq['contact_email'];
            $name    = $inq['contact_name'];
            $subject = "سودانا — استلمنا طلبكم ({$ref})";
            $body    = "عزيزي/عزيزتي {$name}،\n\nشكراً لثقتكم بسودانا للحلول الذكية.\n"
                     . "استلمنا طلب حلول الشركات لـ {$inq['org_name']} برقم مرجعي: {$ref}\n"
                     . "سيتواصل معكم فريقنا خلال 24-48 ساعة.\n\nفريق سودانا";
            @mail($to, $subject, $body, "From: info@sudanna.ai\r\nContent-Type: text/plain; charset=utf-8");
        }
    } catch (Throwable $ignored) {}

    echo json_encode([
        'ok'      => true,
        'ref'     => $ref,
        'message' => 'استلمنا طلبكم بنجاح. سيتواصل فريقنا معكم خلال 24-48 ساعة.',
        'status'  => 'submitted',
    ], JSON_UNESCAPED_UNICODE);

} catch (Throwable $e) {
    http_response_code(500);
    Logger::error('endpoint_error', ['error' => $e->getMessage()]);
    Kernel::fail('server_error', 'خطأ مؤقت — حاول مرة أخرى', 500);
}
