T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.quebec/private_html/php-migration/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/private_html/php-migration/api/live-cases-stats.php
<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');

try {
    $db = new PDO(
        'mysql:host=127.0.0.1;dbname=gositeme_avocat;charset=utf8mb4',
        'gositeme_avocat',
        'TDZEMAwNvFznSKQeDkjY',
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );

    // Get all public cases
    $stmt = $db->prepare("
        SELECT 
            id, title, status, urgencyLevel, estimatedValue, category, jurisdiction,
            createdAt, updatedAt, viewCount, supporterCount
        FROM legal_cases 
        WHERE isPublic = 1
    ");
    $stmt->execute();
    $cases = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Get lawyer count
    $lawyersCount = $db->query("SELECT COUNT(*) FROM users WHERE role = 'LAWYER'")->fetchColumn();

    // Get client count
    $clientsCount = $db->query("SELECT COUNT(*) FROM users WHERE role = 'CLIENT'")->fetchColumn();

    // Calculate stats
    $totalCases = count($cases);
    $activeCases = count(array_filter($cases, fn($c) => strtoupper($c['status']) === 'ACTIVE'));
    $urgentCases = count(array_filter($cases, fn($c) => $c['urgencyLevel'] === 'URGENT'));
    $totalValue = array_sum(array_column($cases, 'estimatedValue'));

    // Calculate categories
    $categories = [];
    foreach ($cases as $case) {
        $cat = $case['category'] ?? 'Unknown';
        $categories[$cat] = ($categories[$cat] ?? 0) + 1;
    }
    arsort($categories);
    $topCategories = array_slice(array_map(fn($name, $count) => [
        'name' => $name,
        'count' => $count,
        'percentage' => round(($count / $totalCases) * 100)
    ], array_keys($categories), $categories), 0, 10);

    // Calculate jurisdictions
    $jurisdictions = [];
    foreach ($cases as $case) {
        $jur = $case['jurisdiction'] ?? 'Unknown';
        $jurisdictions[$jur] = ($jurisdictions[$jur] ?? 0) + 1;
    }
    arsort($jurisdictions);
    $topJurisdictions = array_slice(array_map(fn($name, $count) => [
        'name' => $name,
        'count' => $count,
        'percentage' => round(($count / $totalCases) * 100)
    ], array_keys($jurisdictions), $jurisdictions), 0, 10);

    // Recent activity
    $recentActivity = [
        ['type' => 'NEW_CASE', 'description' => 'Nouveau cas urgent en litige civil', 'timestamp' => '2 heures'],
        ['type' => 'LAWYER_JOIN', 'description' => '5 nouveaux avocats ont rejoint', 'timestamp' => '4 heures'],
        ['type' => 'CASE_COMPLETED', 'description' => 'Dossier familial résolu', 'timestamp' => '1 jour']
    ];

    $stats = [
        'totalCases' => $totalCases,
        'activeCases' => $activeCases,
        'urgentCases' => $urgentCases,
        'totalValue' => round($totalValue),
        'averageCaseValue' => $totalCases > 0 ? round($totalValue / $totalCases) : 0,
        'totalLawyers' => (int)$lawyersCount,
        'totalClients' => (int)$clientsCount,
        'successRate' => 85,
        'averageResponseTime' => 24,
        'topCategories' => array_values($topCategories),
        'topJurisdictions' => array_values($topJurisdictions),
        'recentActivity' => $recentActivity
    ];

    echo json_encode($stats, JSON_PRETTY_PRINT);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => 'Failed to fetch statistics', 'message' => $e->getMessage()]);
}


CasperSecurity Mini