-- =========================================================================
-- SCRIPT DE PRUEBAS PARA MIGRACIÓN V002 (GRUPO B)
-- =========================================================================

-- 1. Insertamos un producto de prueba en la tabla del Grupo A
INSERT INTO productos (codigo_interno, nombre, slug, descripcion, publicado, disponible)
VALUES ('CAR-001', 'Bife Ancho Premium', 'bife-ancho-premium', 'Corte seleccionado de novillo.', TRUE, TRUE);

-- 2. Probamos crear un QR vinculado al producto 1
INSERT INTO codigos_qr (producto_id, codigo)
VALUES (1, 'QR-BIFE-2026-001');

-- 3. Probamos registrar dos escaneos de ese QR
INSERT INTO escaneos_qr (qr_id, producto_id)
VALUES (1, 1), (1, 1);

-- 4. Probamos Proceso Productivo: una etapa general (NULL) y una específica para el producto 1
INSERT INTO proceso_productivo (producto_id, etapa, orden, descripcion)
VALUES 
    (NULL, 'Cría a campo natural', 1, 'Etapa general de crianza en pasturas naturales.'),
    (1, 'Maduración controlada', 4, 'Proceso específico de maduración para cortes premium.');

-- 5. Probamos Contenido Institucional
INSERT INTO contenido_institucional (clave, valor)
VALUES 
    ('empresa_historia', 'LM Carnes es una empresa familiar dedicada a la producción ganadera.'),
    ('contacto_whatsapp', '+5492325000000');

-- 6. Probamos Certificaciones: una institucional (NULL) y una del producto 1
INSERT INTO certificaciones (producto_id, nombre, descripcion)
VALUES 
    (NULL, 'Habilitación SENASA', 'Establecimiento habilitado bajo normas sanitarias vigentes.'),
    (1, 'Carne Argentina Certificada', 'Sello de calidad de exportación para cortes seleccionados.');

-- 7. Verificación básica: Consultamos que todo cruzó bien
SELECT p.nombre AS producto, q.codigo AS qr, COUNT(e.id) AS total_escaneos
FROM productos p
JOIN codigos_qr q ON q.producto_id = p.id
LEFT JOIN escaneos_qr e ON e.qr_id = q.id
GROUP BY p.nombre, q.codigo;


-- =========================================================================
-- 8. PRUEBA DEL CAMPO 'desactivado_en' (Baja lógica de un QR)
-- =========================================================================
-- Simulamos que el administrador desactiva el QR desde el panel:
UPDATE codigos_qr 
SET activo = FALSE, 
    desactivado_en = CURRENT_TIMESTAMP 
WHERE codigo = 'QR-BIFE-2026-001';

-- Verificación: Consultamos el estado del QR y su fecha exacta de desactivación
SELECT id, codigo, activo, desactivado_en 
FROM codigos_qr 
WHERE codigo = 'QR-BIFE-2026-001';


-- =========================================================================
-- 9. PRUEBA DEL JOIN PURO (Para responder a la observación de Gisele)
-- =========================================================================
-- Si en escaneos_qr decidieran NO guardar producto_id de forma redundante,
-- esta consulta cruza desde escaneos hasta productos pasando por codigos_qr:
SELECT 
    e.id AS escaneo_id,
    q.codigo AS qr_codigo,
    p.nombre AS producto_nombre,
    e.escaneado_en
FROM escaneos_qr e
JOIN codigos_qr q ON e.qr_id = q.id
JOIN productos p ON q.producto_id = p.id;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: