<?php
require_once __DIR__ . '/../connect.php';

/**
 * منطق تحديد التواريخ:
 * 1. إذا تم إرسال start_date و end_date في الطلب، سيتم استخدامهما (للبحث في رينج مخصص).
 * 2. إذا لم يتم إرسالهما، سيتم الاعتماد على month و year (للبحث في شهر كامل).
 * 3. إذا لم يتم إرسال أي شيء، سيتم استخدام الشهر الحالي كافتراضي.
 */

if (isset($_POST['start_date']) && isset($_POST['end_date'])) {
    // الحالة الأولى: البحث بنطاق تاريخ محدد (من يوم كذا إلى يوم كذا)
    $start_date = $_POST['start_date'];
    $end_date   = $_POST['end_date'];
} else {
    // الحالة الثانية: البحث بالشهر (مثل السكربت القديم)
    $current_month = isset($_POST['month']) ? $_POST['month'] : date('m');
    $current_year  = isset($_POST['year'])  ? $_POST['year']  : date('Y');

    // تنسيق الشهر ليكون خانتين
    $current_month = str_pad($current_month, 2, "0", STR_PAD_LEFT);

    // حساب أول وآخر يوم في الشهر
    $start_date = date('Y-m-d', strtotime($current_year . '-' . $current_month . '-01'));
    $end_date   = date('Y-m-t', strtotime($start_date));
}

// الاستعلام: جلب عدد السائقين لكل نوع توظيف خلال الفترة المحددة
$sql = "SELECT 
            employmentType, 
            COUNT(*) AS `count` 
        FROM 
            `driver` 
        WHERE 
            DATE(created_at) >= '$start_date' 
            AND DATE(created_at) <= '$end_date'
        GROUP BY 
            employmentType";

try {
    $stmt = $con->prepare($sql);
    $stmt->execute();
    $stats_data = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if ($stats_data) {
        // طباعة البيانات كـ JSON مع إضافة التواريخ المستخدمة للعلم
        printSuccess([
            "data" => $stats_data,
            "period" => [
                "start" => $start_date,
                "end" => $end_date
            ]
        ]);
    } else {
        jsonError("No data found for the selected period");
    }

} catch (PDOException $e) {
    // في حال حدوث خطأ في قاعدة البيانات
    jsonError("Database error: " . $e->getMessage());
}
?>