<?php
// api/stream_control.php - Liga/Desliga/Reinicia o Modo Proxy do Canal
header('Content-Type: application/json');
session_start();
require_once '../includes/db.php';

// Verifica se está logado
if (!isset($_SESSION['logged_in_fxtream'])) { 
    die(json_encode(['status'=>false, 'msg'=>'Acesso negado'])); 
}

$id = $_POST['id'] ?? null;
$action = $_POST['action'] ?? '';

// Validação básica
if (!$id || !$action) {
    echo json_encode(['status'=>false, 'msg'=>'Dados inválidos']);
    exit;
}

try {
    switch ($action) {
        case 'start':
            // Iniciar: Ativa a flag (1) e RESETA O TEMPO (uptime = NOW())
            $stmt = $pdo->prepare("UPDATE channels SET running = 1, uptime = NOW() WHERE id = ?");
            $stmt->execute([$id]);
            echo json_encode(['status'=>true, 'msg'=>'Modo Proxy ATIVADO!']);
            break;

        case 'stop':
            // Parar: Desativa a flag (0).
            $stmt = $pdo->prepare("UPDATE channels SET running = 0 WHERE id = ?");
            $stmt->execute([$id]);
            
            // Derruba conexões ativas desse canal (Limpeza imediata)
            $pdo->prepare("DELETE FROM active_connections WHERE content_id = ? AND stream_type = 'live'")->execute([$id]);
            
            echo json_encode(['status'=>true, 'msg'=>'Modo Proxy DESATIVADO! (Direct)']);
            break;

        case 'restart':
            // Reiniciar: Garante que está rodando (1) e RESETA O TEMPO (uptime = NOW())
            // Isso faz o contador na tela de canais voltar ao zero.
            $stmt = $pdo->prepare("UPDATE channels SET running = 1, uptime = NOW() WHERE id = ?");
            $stmt->execute([$id]);
            
            // Opcional: Você pode descomentar a linha abaixo se quiser derrubar os clientes para forçar reconexão imediata
            // $pdo->prepare("DELETE FROM active_connections WHERE content_id = ? AND stream_type = 'live'")->execute([$id]);

            echo json_encode(['status'=>true, 'msg'=>'Canal reiniciado e tempo zerado!']);
            break;

        default:
            echo json_encode(['status'=>false, 'msg'=>'Ação desconhecida']);
            break;
    }

} catch (Exception $e) {
    echo json_encode(['status'=>false, 'msg'=>'Erro SQL: ' . $e->getMessage()]);
}
?>