Files
ASPIC/agents.php
T

76 lines
3.4 KiB
PHP

<?php
/**
* ASPIC — agents.php
* Liste des agents (ASP_Agents) — assistants IA nommés auxquels une
* consigne vocale peut être adressée (2 septembre 2026, suite du pilotage
* vocal, voir journal section 27 et réflexions stratégiques). Consultée
* par micro.js au chargement pour reconnaître dynamiquement, à la place du
* seul mot déclencheur "Lilou" d'origine, le nom de l'agent auquel
* l'utilisateur s'adresse ("Viktor, ajoute un prospect...", etc.) — et
* enregistrer ce nom dans CVX_AgentTraitant sans avoir à modifier le code
* à chaque agent ajouté ou retiré.
*
* GET seul : ASP_Agents est une table gérée à la main (voir journal de
* développement), pas de création depuis ce endpoint — même principe que
* utilisateurs.php pour ASP_Users.
*/
session_start();
header('Content-Type: application/json; charset=utf-8');
require __DIR__ . '/db.php';
if (empty($_SESSION['USR_Code'])) {
http_response_code(401);
echo json_encode(['error' => 'Non identifié — veuillez vous connecter.']);
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo json_encode(['error' => 'Méthode non autorisée']);
exit;
}
try {
$pdo = getDbConnection();
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['error' => 'Connexion base de données impossible']);
exit;
}
try {
// AGN_Variantes (ajoutée le 2 septembre 2026, voir journal section 27) :
// graphies alternatives du prénom séparées par une virgule ("Milou,
// Loulou"), utilisées par micro.js pour tolérer les confusions
// récurrentes de la reconnaissance vocale sans avoir à modifier le
// code à chaque fois — colonne éditable directement par Jean-Marc.
//
// AGN_Nom renommée AGN_Prenom (7 septembre 2026, nuit — Jean-Marc,
// homogénéisation avec USR_Prenom) : répercuté ici et dans tous les
// consommateurs de ce endpoint (micro.js, contact_ia_panel.js,
// contact_ia_interprete.php) — la clé JSON change de nom avec la colonne,
// pas d'alias de compatibilité gardé, pour ne pas laisser deux noms
// cohabiter pour la même chose.
//
// AGN_Photo (9 septembre 2026, écran assistants) : nom de fichier de la
// photo de l'agent (ex. "assistant_matilda.jpg"), colonne éditée à la
// main par Jean-Marc — même principe que AGN_Variantes. Valeur
// vide/absente tolérée côté écran (repli visuel, voir ecran_fond.html) :
// un agent sans photo reste affiché.
//
// AGN_Couleur (9 septembre 2026) : couleur pastel affectée à l'agent (ex.
// "#A6D9F2"), pas encore utilisée par aucun écran à ce stade — récupérée
// ici par anticipation (même table, même endpoint), voir réflexions
// stratégiques pour son usage prévu (post-its par assistant notamment).
//
// ORDER BY AGN_OrdreAffichage (9 septembre 2026) remplace AGN_Incr :
// Jean-Marc pilote désormais l'ordre d'affichage indépendamment de
// l'ordre de création des agents (ex. écran assistants).
$stmt = $pdo->query('SELECT AGN_Incr, AGN_Prenom, AGN_Fonction, AGN_Variantes, AGN_Photo, AGN_Couleur FROM ASP_Agents ORDER BY AGN_OrdreAffichage ASC');
echo json_encode(['agents' => $stmt->fetchAll()]);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]);
}