Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/LVHJ-8/Proyecto_mecanica/llms.txt

Use this file to discover all available pages before exploring further.

La página de servicios de LUVEN (Frontend/servisios.php) muestra todas las operaciones mecánicas disponibles en el taller. El catálogo se carga dinámicamente desde la base de datos en cada visita, de modo que cualquier servicio creado o modificado por el administrador aparece de forma inmediata para el usuario. Desde cada tarjeta de servicio es posible ir directamente al formulario de citas con el servicio preseleccionado.

URL de acceso

Frontend/servisios.php
No requiere sesión activa. Cualquier visitante puede consultar el catálogo de servicios sin necesidad de iniciar sesión.

Cómo se obtienen los servicios

Al cargar la página, el controlador PHP ejecuta la siguiente consulta sobre la tabla servicios:
SELECT id, nombre, descripcion, duracion_minutos, precio
FROM servicios
ORDER BY id DESC
Los servicios se ordenan de más reciente a más antiguo (ORDER BY id DESC). Los resultados se almacenan en el arreglo $servicios para ser renderizados en la cuadrícula de tarjetas.
Frontend/servisios.php
try {
    $stmt = $pdo->query(
        "SELECT id, nombre, descripcion, duracion_minutos, precio
         FROM servicios
         ORDER BY id DESC"
    );
    $servicios = $stmt->fetchAll();
} catch (\PDOException $e) {
    die("Error al conectar con el catálogo: " . $e->getMessage());
}

Datos mostrados por servicio

Cada tarjeta de servicio presenta los siguientes campos tomados directamente de la tabla servicios:
Campo DBEtiqueta visibleFormato
nombreTítulo de la tarjetaTexto plano
descripcionPárrafo descriptivoTexto plano (fallback: "Mantenimiento preventivo general.")
duracion_minutosDuración estimada⏱️ X min
precioPrecio del servicioS/ X.XX (usando number_format($precio, 2))

Ejemplo de renderizado de una tarjeta

Frontend/servisios.php
<div class="servicio-card">
    <div class="servicio-icon">🔧</div>
    <h3><?php echo htmlspecialchars($servicio['nombre']); ?></h3>
    <p><?php echo htmlspecialchars($servicio['descripcion'] ?? 'Mantenimiento preventivo general.'); ?></p>

    <div class="servicio-meta">
        <span>⏱️ <?php echo htmlspecialchars($servicio['duracion_minutos']); ?> min</span>
    </div>

    <div class="servicio-footer">
        <span class="servicio-precio">S/ <?php echo number_format($servicio['precio'], 2); ?></span>
        <a href="../modulos/citas/agendar.php?servicio_id=<?php echo $servicio['id']; ?>"
           class="btn-reservar-servicio">
            Reservar Cita
        </a>
    </div>
</div>

Botón “Reservar Cita”

Cada tarjeta incluye un botón de acción directo que lleva al formulario de citas con el servicio correspondiente preseleccionado. El id del servicio se pasa como parámetro GET en la URL:
../modulos/citas/agendar.php?servicio_id=X
Donde X es el valor del campo id del servicio en la base de datos. Esto permite al formulario de citas saber qué tipo de operación mecánica está siendo reservada.
Si la tabla servicios no contiene registros (por ejemplo, durante la configuración inicial del sistema), la página muestra un mensaje informativo en lugar de la cuadrícula vacía:
Frontend/servisios.php
<?php if (empty($servicios)): ?>
    <div class="no-servicios">
        <p>🔧 Estamos actualizando nuestro catálogo de operaciones mecánicas en línea.</p>
    </div>
<?php endif; ?>

Gestión de servicios (panel de administración)

Los servicios que aparecen en esta página son gestionados íntegramente desde el panel de administración. El administrador puede crear, editar y eliminar servicios a través de:

Gestión de Servicios

Vista principal del CRUD de servicios en el panel admin.

Editar servicio

Formulario de modificación de nombre, descripción, duración y precio.

Panel Admin

Accede al panel de control general para gestionar todos los recursos.
Cada vez que se agrega o modifica un servicio en el panel, el cambio se refleja automáticamente en Frontend/servisios.php en la siguiente carga de la página, ya que la consulta se ejecuta en tiempo real sin caché.

Build docs developers (and LLMs) love