Files
wevads-platform/scripts/api_mail-personas.php
2026-02-26 04:53:11 +01:00

40 lines
2.1 KiB
PHP
Executable File

<?php
require_once("/opt/wevads/config/credentials.php");
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }
$input = json_decode(file_get_contents('php://input'), true) ?: $_REQUEST;
$action = $input['action'] ?? $_GET['action'] ?? 'status';
try { $pdo = get_pdo("adx_system"); } catch (Exception $e) { $pdo = null; }
switch ($action) {
case 'generate':
$count = intval($input['count'] ?? 1);
$personas = [];
$firstNames = ['Jean','Marie','Pierre','Sophie','Lucas','Emma','Thomas','Léa','Nicolas','Julie'];
$lastNames = ['Martin','Bernard','Dubois','Thomas','Robert','Richard','Petit','Durand','Leroy','Moreau'];
$domains = ['gmail.com','outlook.fr','yahoo.fr','protonmail.com','orange.fr','free.fr'];
for ($i = 0; $i < min($count, 50); $i++) {
$fn = $firstNames[array_rand($firstNames)];
$ln = $lastNames[array_rand($lastNames)];
$domain = $domains[array_rand($domains)];
$personas[] = ['first_name'=>$fn,'last_name'=>$ln,'email'=>strtolower($fn.'.'.$ln.rand(10,99)).'@'.$domain,'display_name'=>"$fn $ln",'company'=>'Weval Corp','signature'=>"$fn $ln — Weval Consulting"];
}
echo json_encode(['status'=>'success','personas'=>$personas,'count'=>count($personas)]);
break;
case 'list':
$personas = [];
if ($pdo) { try { $stmt = $pdo->query("SELECT * FROM admin.mail_personas ORDER BY created_at DESC LIMIT 100"); $personas = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) {} }
echo json_encode(['status'=>'success','personas'=>$personas,'total'=>count($personas)]);
break;
case 'stats':
echo json_encode(['status'=>'success','data'=>['total_personas'=>0,'active'=>0,'used_today'=>0]]);
break;
default:
echo json_encode(['status'=>'success','service'=>'mail-personas','actions'=>['generate','list','stats']]);
}