-- =============================================================================
-- 99 — DATOS DE EJEMPLO: pizzería realista para empezar a probar
-- =============================================================================
USE pizzeria;

-- ── INSUMOS (lo que comprás al proveedor) ────────────────────────────────────

INSERT INTO insumos (codigo, nombre, id_categoria_insumo, id_unidad_compra, id_unidad_uso, factor_conversion, es_perecedero, dias_vencimiento) VALUES
    ('HAR-000',  'Harina 000',                 2, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 0, 180),
    ('HAR-0000', 'Harina 0000',                2, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 0, 180),
    ('MUZ-PRIM', 'Muzzarella primera',         1, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 30),
    ('MUZ-SEG',  'Muzzarella segunda',         1, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 30),
    ('PROVO',    'Provolone',                  1, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 45),
    ('SAL-TOM',  'Salsa de tomate',            4, (SELECT id FROM unidades_medida WHERE codigo='lt'), (SELECT id FROM unidades_medida WHERE codigo='ml'), 1000, 1, 90),
    ('ACE-OL',   'Aceitunas verdes',           5, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 60),
    ('JAM-COC',  'Jamón cocido',               3, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 15),
    ('MOR-ROJ',  'Morrón rojo',                5, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 14),
    ('CEB-COM',  'Cebolla común',              5, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 30),
    ('OREG',     'Orégano',                    4, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 0, 365),
    ('LEV-FRES', 'Levadura fresca',            2, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 1, 30),
    ('SAL-FINA', 'Sal fina',                   4, (SELECT id FROM unidades_medida WHERE codigo='kg'), (SELECT id FROM unidades_medida WHERE codigo='gr'), 1000, 0, 730),
    ('ACE-GIRA', 'Aceite girasol',             4, (SELECT id FROM unidades_medida WHERE codigo='lt'), (SELECT id FROM unidades_medida WHERE codigo='ml'), 1000, 0, 365),
    ('COCA-15',  'Coca Cola 1.5L',             6, (SELECT id FROM unidades_medida WHERE codigo='un'), (SELECT id FROM unidades_medida WHERE codigo='un'), 1,    0, 180),
    ('SPRI-15',  'Sprite 1.5L',                6, (SELECT id FROM unidades_medida WHERE codigo='un'), (SELECT id FROM unidades_medida WHERE codigo='un'), 1,    0, 180),
    ('CAJA-G',   'Caja pizza grande',          7, (SELECT id FROM unidades_medida WHERE codigo='un'), (SELECT id FROM unidades_medida WHERE codigo='un'), 1,    0, NULL),
    ('CAJA-M',   'Caja pizza mediana',         7, (SELECT id FROM unidades_medida WHERE codigo='un'), (SELECT id FROM unidades_medida WHERE codigo='un'), 1,    0, NULL),
    ('SERV',     'Servilletas (bolsa x100)',   7, (SELECT id FROM unidades_medida WHERE codigo='bol'),(SELECT id FROM unidades_medida WHERE codigo='un'), 100, 0, NULL);

-- Stock inicial (en unidad de uso: gr / ml / un)
INSERT INTO stock_actual (id_insumo, cantidad, cantidad_minima, cantidad_ideal, costo_promedio_unit) VALUES
    ((SELECT id FROM insumos WHERE codigo='HAR-000'),  25000,  5000, 20000,  0.80),
    ((SELECT id FROM insumos WHERE codigo='HAR-0000'), 15000,  3000, 15000,  0.95),
    ((SELECT id FROM insumos WHERE codigo='MUZ-PRIM'), 8000,   2000, 10000,  4.50),
    ((SELECT id FROM insumos WHERE codigo='MUZ-SEG'),  5000,   1500,  6000,  3.20),
    ((SELECT id FROM insumos WHERE codigo='PROVO'),    2000,    500,  2500, 12.00),
    ((SELECT id FROM insumos WHERE codigo='SAL-TOM'),  10000,  2000, 12000,  1.20),
    ((SELECT id FROM insumos WHERE codigo='ACE-OL'),   3000,    800,  3000,  6.00),
    ((SELECT id FROM insumos WHERE codigo='JAM-COC'),  3000,    800,  4000,  8.50),
    ((SELECT id FROM insumos WHERE codigo='MOR-ROJ'),  2500,    500,  3000,  1.80),
    ((SELECT id FROM insumos WHERE codigo='CEB-COM'),  4000,    800,  4000,  0.60),
    ((SELECT id FROM insumos WHERE codigo='OREG'),      500,    100,   600, 25.00),
    ((SELECT id FROM insumos WHERE codigo='LEV-FRES'),  300,    100,   500,  6.50),
    ((SELECT id FROM insumos WHERE codigo='SAL-FINA'), 1500,    300,  2000,  0.40),
    ((SELECT id FROM insumos WHERE codigo='ACE-GIRA'), 5000,   1000,  6000,  1.10),
    ((SELECT id FROM insumos WHERE codigo='COCA-15'),    40,     10,    50,300.00),
    ((SELECT id FROM insumos WHERE codigo='SPRI-15'),    20,     10,    30,300.00),
    ((SELECT id FROM insumos WHERE codigo='CAJA-G'),    150,     30,   200,150.00),
    ((SELECT id FROM insumos WHERE codigo='CAJA-M'),    100,     20,   150,100.00),
    ((SELECT id FROM insumos WHERE codigo='SERV'),       80,     20,   100,  1.50);

-- ── PRODUCTOS (lo que vende la pizzería) ─────────────────────────────────────

-- Pizzas
INSERT INTO productos (id_categoria, nombre, descripcion, tags_busqueda) VALUES
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Muzzarella',        'Salsa de tomate, muzzarella y orégano',                 'muzza,muza,mozza,musa'),
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Napolitana',        'Muzzarella, tomate fresco, ajo y albahaca',             'napo,napoletana'),
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Fugazzeta',         'Cebolla, muzzarella y aceitunas',                       'fugazeta,fugaza,fuga'),
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Jamón y morrones',  'Muzzarella, jamón cocido y morrones rojos',             'jamon,jamonconmorron,morrones'),
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Provolone',         'Provolone gratinado y orégano',                         'provo,provoleta'),
    ((SELECT id FROM categorias WHERE nombre='Pizzas'), 'Calabresa',         'Muzzarella, longaniza calabresa y aceitunas',           'calabre,longaniza');

-- Precios por tamaño
-- Pizza Muzzarella
INSERT INTO precios_productos (id_producto, id_tamanio, precio) VALUES
    ((SELECT id FROM productos WHERE nombre='Muzzarella'),       (SELECT id FROM tamanios WHERE nombre='Mediana'), 4800),
    ((SELECT id FROM productos WHERE nombre='Muzzarella'),       (SELECT id FROM tamanios WHERE nombre='Grande'),  6500),
    ((SELECT id FROM productos WHERE nombre='Napolitana'),       (SELECT id FROM tamanios WHERE nombre='Mediana'), 5400),
    ((SELECT id FROM productos WHERE nombre='Napolitana'),       (SELECT id FROM tamanios WHERE nombre='Grande'),  7200),
    ((SELECT id FROM productos WHERE nombre='Fugazzeta'),        (SELECT id FROM tamanios WHERE nombre='Mediana'), 5600),
    ((SELECT id FROM productos WHERE nombre='Fugazzeta'),        (SELECT id FROM tamanios WHERE nombre='Grande'),  7600),
    ((SELECT id FROM productos WHERE nombre='Jamón y morrones'), (SELECT id FROM tamanios WHERE nombre='Mediana'), 5800),
    ((SELECT id FROM productos WHERE nombre='Jamón y morrones'), (SELECT id FROM tamanios WHERE nombre='Grande'),  7900),
    ((SELECT id FROM productos WHERE nombre='Provolone'),        (SELECT id FROM tamanios WHERE nombre='Mediana'), 6800),
    ((SELECT id FROM productos WHERE nombre='Provolone'),        (SELECT id FROM tamanios WHERE nombre='Grande'),  9500),
    ((SELECT id FROM productos WHERE nombre='Calabresa'),        (SELECT id FROM tamanios WHERE nombre='Mediana'), 6200),
    ((SELECT id FROM productos WHERE nombre='Calabresa'),        (SELECT id FROM tamanios WHERE nombre='Grande'),  8400);

-- Bebidas
INSERT INTO productos (id_categoria, nombre, descripcion) VALUES
    ((SELECT id FROM categorias WHERE nombre='Bebidas'), 'Coca Cola 1.5L', 'Botella de Coca Cola 1.5L'),
    ((SELECT id FROM categorias WHERE nombre='Bebidas'), 'Sprite 1.5L',    'Botella de Sprite 1.5L'),
    ((SELECT id FROM categorias WHERE nombre='Bebidas'), 'Agua mineral',   'Botella de agua mineral 500ml');

INSERT INTO precios_productos (id_producto, id_tamanio, precio) VALUES
    ((SELECT id FROM productos WHERE nombre='Coca Cola 1.5L'), NULL, 3200),
    ((SELECT id FROM productos WHERE nombre='Sprite 1.5L'),    NULL, 3200),
    ((SELECT id FROM productos WHERE nombre='Agua mineral'),   NULL, 1500);

-- ── RECETAS (qué insumo lleva cada producto) ─────────────────────────────────

-- Receta de Pizza Muzzarella Grande
SET @id_receta_muzz_g := NULL;
INSERT INTO recetas (id_producto, id_tamanio, nombre_receta, version)
SELECT id, (SELECT id FROM tamanios WHERE nombre='Grande'), 'Muzzarella grande v1', 1
FROM productos WHERE nombre='Muzzarella';
SET @id_receta_muzz_g := LAST_INSERT_ID();

INSERT INTO recetas_items (id_receta, id_insumo, cantidad, orden) VALUES
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='HAR-000'),  280, 1),  -- 280gr harina
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='SAL-TOM'),  100, 2),  -- 100ml salsa
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='MUZ-PRIM'), 220, 3),  -- 220gr muzza
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='OREG'),       3, 4),  -- 3gr orégano
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='ACE-GIRA'),  10, 5),  -- 10ml aceite
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='SAL-FINA'),   8, 6),  -- 8gr sal
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='LEV-FRES'),   8, 7),  -- 8gr levadura
    (@id_receta_muzz_g, (SELECT id FROM insumos WHERE codigo='CAJA-G'),     1, 8);  -- 1 caja grande

-- Receta de Pizza Muzzarella Mediana
SET @id_receta_muzz_m := NULL;
INSERT INTO recetas (id_producto, id_tamanio, nombre_receta, version)
SELECT id, (SELECT id FROM tamanios WHERE nombre='Mediana'), 'Muzzarella mediana v1', 1
FROM productos WHERE nombre='Muzzarella';
SET @id_receta_muzz_m := LAST_INSERT_ID();

INSERT INTO recetas_items (id_receta, id_insumo, cantidad, orden) VALUES
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='HAR-000'),  200, 1),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='SAL-TOM'),   75, 2),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='MUZ-PRIM'), 160, 3),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='OREG'),       2, 4),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='ACE-GIRA'),   8, 5),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='SAL-FINA'),   6, 6),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='LEV-FRES'),   6, 7),
    (@id_receta_muzz_m, (SELECT id FROM insumos WHERE codigo='CAJA-M'),     1, 8);

-- ── COMBOS / PROMOS ──────────────────────────────────────────────────────────

INSERT INTO combos (nombre, descripcion, precio, horario_desde, horario_hasta) VALUES
    ('Combo Pareja',       '2 pizzas grandes a elección + 1 Coca 1.5L',                15000, '18:00:00', '00:00:00'),
    ('Combo Familiar',     '3 pizzas grandes a elección + 1 Coca 1.5L + 1 Sprite 1.5L', 22500, '18:00:00', '00:00:00'),
    ('Promo Martes',       '2 muzzas grandes a $9500',                                   9500, NULL, NULL);

-- ── ZONAS DELIVERY ───────────────────────────────────────────────────────────

INSERT INTO zonas_delivery (nombre, precio_envio, tiempo_estimado_min, centro_lat, centro_lng, radio_km) VALUES
    ('Centro 1km',  1500, 25, -34.603722, -58.381592, 1.0),
    ('Centro 2km',  2200, 35, -34.603722, -58.381592, 2.0),
    ('Centro 3km',  3000, 45, -34.603722, -58.381592, 3.0);

-- ── PROVEEDORES ──────────────────────────────────────────────────────────────

INSERT INTO proveedores (razon_social, nombre_fantasia, cuit, telefono, whatsapp, condicion_pago, dias_entrega) VALUES
    ('Lacteos del Sur SA',     'Lacteos del Sur', '30-12345678-9', '+5491155667788', '+5491155667788', 'Cta cte 15 días', 1),
    ('Harinas Argentinas SRL', 'Harinas Arg',     '30-87654321-0', '+5491166778899', '+5491166778899', 'Contado',         2),
    ('Distribuidora Coca SA',  'Coca distri',     '30-11223344-5', '+5491177889900', '+5491177889900', 'Cta cte 30 días', 1),
    ('Frutiverdura Don José',  'Don José',        '20-12345678-9', '+5491188990011', '+5491188990011', 'Contado',         1);

INSERT INTO proveedores_insumos (id_proveedor, id_insumo, precio_unitario, presentacion, cantidad_x_presentacion, es_proveedor_preferido) VALUES
    -- Lacteos del Sur: lácteos
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Lacteos del Sur'), (SELECT id FROM insumos WHERE codigo='MUZ-PRIM'), 4500, 'Bolsa 10kg',  10, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Lacteos del Sur'), (SELECT id FROM insumos WHERE codigo='MUZ-SEG'),  3200, 'Bolsa 10kg',  10, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Lacteos del Sur'), (SELECT id FROM insumos WHERE codigo='PROVO'),   12000, 'Horma 4kg',    4, 1),
    -- Harinas
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Harinas Arg'),     (SELECT id FROM insumos WHERE codigo='HAR-000'),   800, 'Bolsa 25kg',  25, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Harinas Arg'),     (SELECT id FROM insumos WHERE codigo='HAR-0000'),  950, 'Bolsa 25kg',  25, 1),
    -- Coca
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Coca distri'),     (SELECT id FROM insumos WHERE codigo='COCA-15'),   300, 'Pack x6',      6, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Coca distri'),     (SELECT id FROM insumos WHERE codigo='SPRI-15'),   300, 'Pack x6',      6, 1),
    -- Verduras
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Don José'),        (SELECT id FROM insumos WHERE codigo='MOR-ROJ'),  1800, 'Caja 10kg',   10, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Don José'),        (SELECT id FROM insumos WHERE codigo='CEB-COM'),   600, 'Bolsa 25kg',  25, 1),
    ((SELECT id FROM proveedores WHERE nombre_fantasia='Don José'),        (SELECT id FROM insumos WHERE codigo='JAM-COC'),  8500, 'Pieza 5kg',    5, 0);

-- ── CLIENTES DE EJEMPLO ─────────────────────────────────────────────────────

INSERT INTO clientes (nombre, telefono_whatsapp, whatsapp_verificado, fecha_cumpleanos) VALUES
    ('Juan Pérez',      '+5491111111111', 1, '1985-03-15'),
    ('María González',  '+5491122222222', 1, '1990-08-22'),
    ('Carlos Rodríguez','+5491133333333', 1, '1978-12-05'),
    ('Lucía Martínez',  '+5491144444444', 1, '1995-06-10');

INSERT INTO clientes_direcciones (id_cliente, alias, direccion, es_principal) VALUES
    (1, 'Casa',     'Av Corrientes 1234, Piso 5 Dto B', 1),
    (2, 'Casa',     'Cabildo 567, Piso 2',              1),
    (3, 'Oficina',  'Av 9 de Julio 1000',               1),
    (4, 'Casa',     'Honduras 5400',                    1);

-- ── EMPLEADOS ────────────────────────────────────────────────────────────────

INSERT INTO empleados (nombre, apellido, dni, telefono, rol, salario_base, fecha_ingreso) VALUES
    ('Pedro',  'Sánchez', '25123456', '+5491100000001', 'dueno',      0,       '2023-01-01'),
    ('Ana',    'López',   '30234567', '+5491100000002', 'encargado',  450000,  '2023-06-15'),
    ('Carlos', 'Díaz',    '35345678', '+5491100000003', 'pizzero',    380000,  '2024-02-01'),
    ('Roberto','Ferrari', '40456789', '+5491100000004', 'repartidor', 250000,  '2024-09-10'),
    ('Marta',  'Silva',   '32567890', '+5491100000005', 'cajero',     320000,  '2023-11-20');

-- ── USUARIOS DEL SISTEMA ─────────────────────────────────────────────────────

INSERT INTO usuarios (nick, password_hash, id_empleado, id_tipo) VALUES
    ('pedro', '$2y$10$xxx', 1, 1),  -- admin/dueño
    ('ana',   '$2y$10$xxx', 2, 2),  -- encargada
    ('marta', '$2y$10$xxx', 5, 5);  -- cajera

-- ── CAJA INICIAL ─────────────────────────────────────────────────────────────

INSERT INTO caja_aperturas (id_caja, saldo_inicial, id_usuario_abre) VALUES
    (1, 20000, 1);

SELECT 'Datos de ejemplo insertados correctamente.' AS estado,
       (SELECT COUNT(*) FROM insumos)   AS insumos,
       (SELECT COUNT(*) FROM productos) AS productos,
       (SELECT COUNT(*) FROM recetas)   AS recetas,
       (SELECT COUNT(*) FROM clientes)  AS clientes,
       (SELECT COUNT(*) FROM proveedores) AS proveedores;
