<?php
session_start();
header('Content-Type: application/json');

if (!isset($_SESSION['eggzie_iboPlayer2']) || !isset($_SESSION['seller_name'])) {
    echo json_encode(['success' => false, 'error' => 'Não autenticado']);
    exit();
}

$seller_name = $_SESSION['seller_name'];
$mac = isset($_POST['mac']) ? strtoupper(trim($_POST['mac'])) : '';

if (empty($mac) || !preg_match('/^([0-9A-F]{2}:){7}[0-9A-F]{2}$/', $mac)) {
    echo json_encode(['success' => false, 'error' => 'MAC inválido']);
    exit();
}

$db = new SQLite3('../a/.eggziedb.db');

// Verificar se o MAC existe e está expirado
$check = $db->query("SELECT COUNT(*) as c, MAX(expire_date) as last_expire FROM ibo 
                     WHERE mac_address = '$mac' AND seller = '$seller_name'");
$row = $check->fetchArray(SQLITE3_ASSOC);
if ($row['c'] == 0) {
    echo json_encode(['success' => false, 'error' => 'MAC não encontrado']);
    exit();
}

$today = date('Y-m-d');
if ($row['last_expire'] >= $today) {
    echo json_encode(['success' => false, 'error' => 'MAC não está expirado']);
    exit();
}

// Verificar saldo de MACs
$macs_result = $db->query("SELECT macs FROM revenda WHERE usuario = '$seller_name'");
$macs_row = $macs_result->fetchArray(SQLITE3_ASSOC);
$available_macs = $macs_row ? intval($macs_row['macs']) : 0;

if ($available_macs <= 0) {
    echo json_encode(['success' => false, 'error' => 'Saldo de MACs insuficiente para renovar']);
    exit();
}

// Iniciar transação
$db->exec('BEGIN IMMEDIATE');

// Renovar: atualizar todas as playlists do MAC para +1 ano
$new_expire = date('Y-m-d', strtotime('+1 year'));
$sql = "UPDATE ibo SET expire_date = '$new_expire', is_test = 0 
        WHERE mac_address = '$mac' AND seller = '$seller_name'";
if ($db->exec($sql)) {
    // Deduzir 1 MAC
    $new_balance = $available_macs - 1;
    $db->exec("UPDATE revenda SET macs = $new_balance WHERE usuario = '$seller_name'");
    $db->exec('COMMIT');
    echo json_encode(['success' => true, 'message' => 'MAC renovado com sucesso! Nova validade: ' . date('d/m/Y', strtotime($new_expire)) . ". Saldo restante: $new_balance MACs."]);
} else {
    $db->exec('ROLLBACK');
    echo json_encode(['success' => false, 'error' => 'Erro ao renovar: ' . $db->lastErrorMsg()]);
}
?>