Files
html/api/opus5-prospects-today.php
2026-04-17 16:55:02 +02:00

68 lines
2.2 KiB
PHP

<?php
// OPUS5 — Fast endpoint prospects recensés aujourd'hui (fix 502 ethica-chatbot)
// Répond en <500ms au lieu de 30s+ timeout LLM
header('Content-Type: application/json');
$start = microtime(true);
$R = ['ts'=>date('c'), 'source'=>'opus5-prospects-today'];
// Connexion PG S95
$conn = @pg_connect("host=10.1.0.3 port=5432 dbname=adx_system user=admin password=admin123 connect_timeout=5");
if (!$conn) {
http_response_code(503);
echo json_encode(['error'=>'db_unreachable', 'source'=>'opus5-prospects-today']);
exit;
}
// 3 compteurs aujourd'hui
$out = [];
// Ethica
$r = @pg_query($conn, "SELECT count(*) as c, max(created_at) as last FROM ethica.medecins_real WHERE created_at::date = CURRENT_DATE");
if ($r) {
$row = pg_fetch_assoc($r);
$out['ethica_medecins_today'] = (int)$row['c'];
$out['ethica_last_created'] = $row['last'];
}
// weval_leads
$r = @pg_query($conn, "SELECT count(*) as c FROM weval_leads WHERE created_at::date = CURRENT_DATE");
if ($r) {
$row = pg_fetch_assoc($r);
$out['weval_leads_today'] = (int)$row['c'];
}
// admin.leads
$r = @pg_query($conn, "SELECT count(*) as c FROM admin.leads WHERE created_at::date = CURRENT_DATE");
if ($r) {
$row = pg_fetch_assoc($r);
$out['admin_leads_today'] = (int)$row['c'];
}
// Total ethica stable (référence)
$r = @pg_query($conn, "SELECT count(*) FROM ethica.medecins_real");
if ($r) {
$out['ethica_total'] = (int)pg_fetch_result($r, 0, 0);
}
pg_close($conn);
$R['stats'] = $out;
$R['total_today'] = ($out['ethica_medecins_today'] ?? 0) + ($out['weval_leads_today'] ?? 0) + ($out['admin_leads_today'] ?? 0);
// Response humaine pour le chatbot
$R['response'] = sprintf(
"Aujourd'hui %s, nos agents ont recensé %d prospects :\n\n- Ethica HCPs: %d nouveaux (total base: %d)\n- WEVAL leads: %d nouveaux\n- Admin leads (B2B): %d nouveaux\n\nTotal: %d prospects recensés aujourd'hui.",
date('d/m/Y'),
$R['total_today'],
$out['ethica_medecins_today'] ?? 0,
$out['ethica_total'] ?? 0,
$out['weval_leads_today'] ?? 0,
$out['admin_leads_today'] ?? 0,
$R['total_today']
);
$R['ms'] = round((microtime(true) - $start) * 1000);
$R['provider'] = 'opus5-prospects-today-direct-db';
echo json_encode($R, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);