yazrkisvs3vvvsv33svrhetrjsvyvsvvyjsvsvs
tavsuysvssvvjvvyjyjkvsvqd
qfogsvvsvsegjdgdfgdskhgdksvqsvshdqsd
<?php
header('Content-Type: application/json');
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../db.php';
require_once __DIR__ . '/../auth.php';
dm_require_login();
dm_require_login();
dm_csrf_verify();

$input = json_decode(file_get_contents('php://input'), true);
$cid   = (int)($input['client_id'] ?? 0);
if (!$cid) { echo json_encode(['ok'=>false,'error'=>'client_id requerido']); exit; }

// Auto-add new columns si no existen
try {
    $pdo->exec("ALTER TABLE dm_clients ADD COLUMN IF NOT EXISTS report_send_day TINYINT UNSIGNED DEFAULT 1");
    $pdo->exec("ALTER TABLE dm_clients ADD COLUMN IF NOT EXISTS report_use_logo TINYINT UNSIGNED DEFAULT 0");
} catch (\PDOException $e) { /* ya existen o tabla no soporta */ }

$c = $pdo->prepare("SELECT id, contact_email, report_auto_send, report_send_day, report_use_logo FROM dm_clients WHERE id = ?");
$c->execute([$cid]);
$client = $c->fetch(PDO::FETCH_ASSOC);
if (!$client) { echo json_encode(['ok'=>false,'error'=>'Cliente no encontrado']); exit; }

if (isset($input['action']) && $input['action'] === 'get') {
    echo json_encode([
        'ok'               => true,
        'contact_email'    => $client['contact_email'],
        'report_auto_send' => (bool)$client['report_auto_send'],
        'report_send_day'  => (int)($client['report_send_day'] ?? 1),
        'report_use_logo'  => (bool)($client['report_use_logo'] ?? false),
    ]);
    exit;
}

$raw_email        = trim($input['contact_email'] ?? '');
$contact_email    = filter_var($raw_email, FILTER_VALIDATE_EMAIL) ? $raw_email : '';
$report_auto_send = !empty($input['report_auto_send']) ? 1 : 0;
// FASE 2 FIX: permitir hasta día 31. El cron de envío usa min(send_day, días_del_mes_anterior)
// para que día=31 caiga en el último día válido (28/29/30/31) sin saltar el envío.
$report_send_day  = max(1, min(31, (int)($input['report_send_day'] ?? 1)));
$report_use_logo  = !empty($input['report_use_logo']) ? 1 : 0;

if ($raw_email && !$contact_email) {
    echo json_encode(['ok'=>false,'error'=>'Email no válido']); exit;
}

$pdo->prepare("UPDATE dm_clients SET contact_email=?, report_auto_send=?, report_send_day=?, report_use_logo=? WHERE id=?")
    ->execute([$contact_email, $report_auto_send, $report_send_day, $report_use_logo, $cid]);

echo json_encode(['ok' => true]);
