<?php
include_once 'includes/header.php';
include_once 'config/database.php';

$database = new Database();
$conn = $database->getConnection();

// Delete logic
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    try {
        // Verificar si la alternativa tiene preguntas asociadas
        $stmt = $conn->prepare("SELECT COUNT(*) as total FROM tdetpreg_alterna WHERE codalternativas = ?");
        $stmt->execute([$id]);
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($result['total'] > 0) {
            $_SESSION['error'] = "❌ No se puede eliminar la alternativa porque está asociada a una o más preguntas";
        } else {
            $stmt = $conn->prepare("DELETE FROM talternativas WHERE codalternativas = ?");
            $stmt->execute([$id]);
            $_SESSION['success'] = "✅ Alternativa eliminada correctamente";
        }
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al eliminar la alternativa: " . $e->getMessage();
    }
    header("Location: alternativas.php");
    exit();
}

// Insert/Update logic
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $alternativa = trim($_POST['alternativa']);
    
    if (isset($_POST['id'])) {
        // Update
        try {
            if (empty($alternativa)) {
                throw new Exception("El nombre de la alternativa es obligatorio");
            }

            $stmt = $conn->prepare("UPDATE talternativas SET alternativa = ? WHERE codalternativas = ?");
            $stmt->execute([$alternativa, $_POST['id']]);
            $_SESSION['success'] = "✅ Alternativa actualizada correctamente";
        } catch(Exception $e) {
            $_SESSION['error'] = "❌ Error al actualizar la alternativa: " . $e->getMessage();
        }
    } else {
        // Insert
        try {
            if (empty($alternativa)) {
                throw new Exception("El nombre de la alternativa es obligatorio");
            }

            $stmt = $conn->prepare("INSERT INTO talternativas (alternativa) VALUES (?)");
            $stmt->execute([$alternativa]);
            $_SESSION['success'] = "🎉 Alternativa creada correctamente";
        } catch(Exception $e) {
            $_SESSION['error'] = "❌ Error al crear la alternativa: " . $e->getMessage();
        }
    }
    header("Location: alternativas.php");
    exit();
}

// Edit logic - fetch single record
$editData = null;
if (isset($_GET['edit'])) {
    try {
        $stmt = $conn->prepare("SELECT * FROM talternativas WHERE codalternativas = ?");
        $stmt->execute([$_GET['edit']]);
        $editData = $stmt->fetch(PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al obtener la alternativa: " . $e->getMessage();
    }
}

// Fetch all records with search
try {
    $search = isset($_GET['search']) ? trim($_GET['search']) : '';
    
    $query = "SELECT a.*, 
                     (SELECT COUNT(*) FROM tdetpreg_alterna WHERE codalternativas = a.codalternativas) as total_preguntas
              FROM talternativas a
              WHERE 1=1";
    
    $params = [];
    if ($search) {
        $query .= " AND a.alternativa LIKE ?";
        $searchTerm = "%{$search}%";
        $params[] = $searchTerm;
    }
    
    $query .= " ORDER BY a.alternativa";
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $alternativas = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    $_SESSION['error'] = "❌ Error al obtener los datos: " . $e->getMessage();
    $alternativas = [];
}
?>

<style>
.alternativa-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.alternativa-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.badge-preguntas {
    font-size: 0.85rem;
    padding: 5px 10px;
}
</style>

<div class="col-md-10 p-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2>
            <i class="fas fa-list-check"></i> Gestión de Alternativas
        </h2>
        <?php if (!isset($_GET['edit']) && !isset($_GET['create'])): ?>
            <a href="?create" class="btn btn-primary">
                <i class="fas fa-plus"></i> Nueva Alternativa
            </a>
        <?php endif; ?>
    </div>

    <?php if (isset($_SESSION['success'])): ?>
        <div class="alert alert-success alert-custom">
            <i class="fas fa-check-circle"></i>
            <?php 
            echo $_SESSION['success']; 
            unset($_SESSION['success']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['warning'])): ?>
        <div class="alert alert-warning alert-custom">
            <i class="fas fa-exclamation-triangle"></i>
            <?php 
            echo $_SESSION['warning']; 
            unset($_SESSION['warning']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['error'])): ?>
        <div class="alert alert-danger alert-custom">
            <i class="fas fa-exclamation-triangle"></i>
            <?php 
            echo $_SESSION['error']; 
            unset($_SESSION['error']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['create']) || isset($_GET['edit'])): ?>
        <!-- Form for create/edit -->
        <div class="card mb-4">
            <div class="card-body">
                <h5 class="card-title">
                    <i class="fas fa-<?php echo isset($_GET['edit']) ? 'edit' : 'plus'; ?>"></i>
                    <?php echo isset($_GET['edit']) ? 'Editar' : 'Crear'; ?> Alternativa
                </h5>
                <form method="POST" action="alternativas.php">
                    <?php if (isset($_GET['edit'])): ?>
                        <input type="hidden" name="id" value="<?php echo $editData['codalternativas']; ?>">
                    <?php endif; ?>
                    
                    <div class="mb-3">
                        <label class="form-label">
                            <i class="fas fa-list-check"></i> Nombre de la Alternativa *
                        </label>
                        <input type="text" class="form-control" name="alternativa" maxlength="50"
                               placeholder="Ingrese el nombre de la alternativa"
                               value="<?php echo $editData ? htmlspecialchars($editData['alternativa']) : ''; ?>" required>
                        <div class="form-text">Máximo 50 caracteres</div>
                    </div>

                    <div class="d-flex gap-2">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save"></i> Guardar
                        </button>
                        <a href="alternativas.php" class="btn btn-secondary">
                            <i class="fas fa-times"></i> Cancelar
                        </a>
                    </div>
                </form>
            </div>
        </div>
    <?php else: ?>
        <!-- Search form -->
        <div class="card mb-4">
            <div class="card-body">
                <form method="GET" action="alternativas.php" class="row g-3">
                    <div class="col-md-8">
                        <input type="text" class="form-control" name="search" 
                               placeholder="Buscar por nombre de alternativa..."
                               value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>">
                    </div>
                    <div class="col-md-4">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-search"></i> Buscar
                        </button>
                        <?php if (isset($_GET['search'])): ?>
                            <a href="alternativas.php" class="btn btn-secondary">
                                <i class="fas fa-times"></i> Limpiar
                            </a>
                        <?php endif; ?>
                    </div>
                </form>
            </div>
        </div>

        <!-- List of records -->
        <div class="card">
            <div class="card-body">
                <?php if (empty($alternativas)): ?>
                    <div class="text-center py-5">
                        <i class="fas fa-list-check fa-4x text-muted mb-3"></i>
                        <p class="text-muted">No hay alternativas registradas</p>
                        <a href="?create" class="btn btn-primary">
                            <i class="fas fa-plus"></i> Crear Primera Alternativa
                        </a>
                    </div>
                <?php else: ?>
                    <div class="table-responsive">
                        <table class="table table-striped">
                            <thead>
                                <tr>
                                    <th><i class="fas fa-hashtag"></i> ID</th>
                                    <th><i class="fas fa-list-check"></i> Alternativa</th>
                                    <th><i class="fas fa-question-circle"></i> Preguntas</th>
                                    <th><i class="fas fa-cogs"></i> Acciones</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($alternativas as $alternativa): ?>
                                    <tr>
                                        <td>
                                            <span class="badge bg-primary rounded-pill"><?php echo $alternativa['codalternativas']; ?></span>
                                        </td>
                                        <td>
                                            <strong><?php echo htmlspecialchars($alternativa['alternativa']); ?></strong>
                                        </td>
                                        <td>
                                            <?php if ($alternativa['total_preguntas'] > 0): ?>
                                                <span class="badge bg-info badge-preguntas">
                                                    <i class="fas fa-question-circle"></i>
                                                    <?php echo $alternativa['total_preguntas']; ?> pregunta(s)
                                                </span>
                                            <?php else: ?>
                                                <span class="badge bg-secondary badge-preguntas">
                                                    <i class="fas fa-exclamation-circle"></i>
                                                    Sin preguntas
                                                </span>
                                            <?php endif; ?>
                                        </td>
                                        <td>
                                            <div class="btn-group" role="group">
                                                <a href="?edit=<?php echo $alternativa['codalternativas']; ?>" 
                                                   class="btn btn-sm btn-warning" 
                                                   title="Editar">
                                                    <i class="fas fa-edit"></i>
                                                </a>
                                                <a href="?delete=<?php echo $alternativa['codalternativas']; ?>" 
                                                   class="btn btn-sm btn-danger"
                                                   onclick="return confirm('¿Está seguro de eliminar la alternativa \'<?php echo htmlspecialchars($alternativa['alternativa']); ?>\'?')"
                                                   title="Eliminar">
                                                    <i class="fas fa-trash"></i>
                                                </a>
                                            </div>
                                        </td>
                                    </tr>
                                <?php endforeach; ?>
                            </tbody>
                        </table>
                    </div>
                <?php endif; ?>
            </div>
        </div>
    <?php endif; ?>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Form validation
    const form = document.querySelector('form[method="POST"]');
    if (form) {
        form.addEventListener('submit', function(e) {
            const alternativa = form.querySelector('input[name="alternativa"]').value.trim();
            if (!alternativa) {
                e.preventDefault();
                alert('El nombre de la alternativa es obligatorio');
                return false;
            }
            
            if (alternativa.length > 50) {
                e.preventDefault();
                alert('El nombre de la alternativa no puede exceder 50 caracteres');
                return false;
            }
        });
    }
});
</script>

<?php
include_once 'includes/footer.php';
?>

