-- ═══════════════════════════════════════════════════════════════
-- Script para Popular Franquia "Dsw Internet" com Dados de Teste
-- ═══════════════════════════════════════════════════════════════
-- Franquia: Dsw Internet (ID: 4)
-- Usuário: ivandronascimento@hotmail.com (ID: 2)
-- ═══════════════════════════════════════════════════════════════

USE adm_freefi;

-- ═══════════════════════════════════════════════════════════════
-- 1. CRIAR 2 CLIENTES PARA A FRANQUIA DSW INTERNET
-- ═══════════════════════════════════════════════════════════════

INSERT INTO empresas (name, tipo_empresa, empresa_pai_id, codigo, codigo_convite, status, created_at, updated_at, created_by, updated_by)
VALUES
    ('Restaurante Sabor Nordestino', 'cliente', 4, 'EMP000010', MD5(CONCAT('restaurante', UNIX_TIMESTAMP())), 0, NOW(), NOW(), 2, 2),
    ('Farmácia São José', 'cliente', 4, 'EMP000011', MD5(CONCAT('farmacia', UNIX_TIMESTAMP())), 0, NOW(), NOW(), 2, 2);

-- Pegar IDs dos clientes recém-criados
SET @cliente1_id = (SELECT id FROM empresas WHERE name = 'Restaurante Sabor Nordestino');
SET @cliente2_id = (SELECT id FROM empresas WHERE name = 'Farmácia São José');

-- ═══════════════════════════════════════════════════════════════
-- 2. CRIAR HOTSPOTS PARA OS CLIENTES
-- ═══════════════════════════════════════════════════════════════

INSERT INTO hotspots (serial, franquia_id, cliente_id, situacao, status, last_activity_at, created_at, updated_at, created_by, updated_by)
VALUES
    ('HOTSPOT-REST-001', 4, @cliente1_id, 'instalado', 0, NOW(), NOW(), NOW(), 2, 2),
    ('HOTSPOT-FARM-001', 4, @cliente2_id, 'instalado', 0, NOW(), NOW(), 2, 2);

-- Pegar IDs dos hotspots
SET @hotspot1_id = (SELECT id FROM hotspots WHERE serial = 'HOTSPOT-REST-001');
SET @hotspot2_id = (SELECT id FROM hotspots WHERE serial = 'HOTSPOT-FARM-001');

-- ═══════════════════════════════════════════════════════════════
-- 3. CRIAR CRIATIVOS (MÍDIAS) PARA A FRANQUIA
-- ═══════════════════════════════════════════════════════════════

INSERT INTO criativos (title, tipo, formato, path, franquia_id, empresa_legado_id, status, status_aprovacao, created_at, updated_at, created_by, updated_by)
VALUES
    ('Promoção Almoço Executivo', 'imagem', 'jpg', '/storage/criativos/teste1.jpg', 4, @cliente1_id, 0, 'aprovado', NOW(), NOW(), 2, 2),
    ('Desconto Medicamentos', 'imagem', 'jpg', '/storage/criativos/teste2.jpg', 4, @cliente2_id, 0, 'aprovado', NOW(), NOW(), 2, 2),
    ('Banner Institucional DSW', 'html', 'html', NULL, 4, 4, 0, 'aprovado', NOW(), NOW(), 2, 2);

-- Pegar IDs dos criativos
SET @criativo1_id = (SELECT id FROM criativos WHERE title = 'Promoção Almoço Executivo');
SET @criativo2_id = (SELECT id FROM criativos WHERE title = 'Desconto Medicamentos');
SET @criativo3_id = (SELECT id FROM criativos WHERE title = 'Banner Institucional DSW');

-- ═══════════════════════════════════════════════════════════════
-- 4. CRIAR PUBLICAÇÕES
-- ═══════════════════════════════════════════════════════════════

INSERT INTO publicacoes (
    titulo,
    criativo_id,
    franquia_id,
    cliente_id,
    data_inicio,
    data_fim,
    status,
    tipo_alcance,
    periodicidade,
    valor_contrato,
    publicado_por,
    created_at,
    updated_at,
    created_by,
    updated_by
)
VALUES
    (
        'Campanha Almoço Executivo - Novembro',
        @criativo1_id,
        4,
        @cliente1_id,
        CURDATE(),
        DATE_ADD(CURDATE(), INTERVAL 30 DAY),
        'ativa',
        'empresa',
        'diaria',
        500.00,
        2,
        NOW(),
        NOW(),
        2,
        2
    ),
    (
        'Promoção Black Friday Medicamentos',
        @criativo2_id,
        4,
        @cliente2_id,
        CURDATE(),
        DATE_ADD(CURDATE(), INTERVAL 15 DAY),
        'ativa',
        'empresa',
        'diaria',
        750.00,
        2,
        NOW(),
        NOW(),
        2,
        2
    );

-- Pegar IDs das publicações
SET @pub1_id = (SELECT id FROM publicacoes WHERE titulo = 'Campanha Almoço Executivo - Novembro');
SET @pub2_id = (SELECT id FROM publicacoes WHERE titulo = 'Promoção Black Friday Medicamentos');

-- ═══════════════════════════════════════════════════════════════
-- 5. CRIAR DADOS DE IMPRESSÕES E CLIQUES (Para Dashboard)
-- ═══════════════════════════════════════════════════════════════

-- Impressões últimos 7 dias
INSERT INTO publicacao_impressoes (publicacao_id, data, impressoes, usuarios_unicos, created_at, updated_at)
VALUES
    (@pub1_id, CURDATE(), 150, 120, NOW(), NOW()),
    (@pub1_id, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 180, 140, NOW(), NOW()),
    (@pub1_id, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 200, 160, NOW(), NOW()),
    (@pub2_id, CURDATE(), 100, 80, NOW(), NOW()),
    (@pub2_id, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 120, 95, NOW(), NOW());

-- Cliques últimos 7 dias
INSERT INTO publicacao_cliques (publicacao_id, hotspot_id, ip_address, user_agent, clicked_at, created_at, updated_at)
VALUES
    (@pub1_id, @hotspot1_id, '192.168.1.100', 'Mozilla/5.0', NOW(), NOW(), NOW()),
    (@pub1_id, @hotspot1_id, '192.168.1.101', 'Mozilla/5.0', NOW(), NOW(), NOW()),
    (@pub1_id, @hotspot1_id, '192.168.1.102', 'Mozilla/5.0', DATE_SUB(NOW(), INTERVAL 1 DAY), NOW(), NOW()),
    (@pub2_id, @hotspot2_id, '192.168.1.103', 'Mozilla/5.0', NOW(), NOW(), NOW()),
    (@pub2_id, @hotspot2_id, '192.168.1.104', 'Mozilla/5.0', DATE_SUB(NOW(), INTERVAL 2 DAY), NOW(), NOW());

-- ═══════════════════════════════════════════════════════════════
-- 6. CRIAR LOGS DE ACESSO WIFI (Para KPIs do Dashboard)
-- ═══════════════════════════════════════════════════════════════

INSERT INTO logs_acesso_wifi (
    hotspot_id,
    franquia_id,
    mac_address_hash,
    ip_address,
    dispositivo_tipo,
    tempo_sessao,
    created_at,
    updated_at
)
VALUES
    -- Hotspot Restaurante
    (@hotspot1_id, 4, MD5('device001'), '192.168.1.10', 'mobile', 1800, NOW(), NOW()),
    (@hotspot1_id, 4, MD5('device002'), '192.168.1.11', 'desktop', 3600, NOW(), NOW()),
    (@hotspot1_id, 4, MD5('device003'), '192.168.1.12', 'mobile', 2400, DATE_SUB(NOW(), INTERVAL 1 DAY), NOW()),
    (@hotspot1_id, 4, MD5('device001'), '192.168.1.10', 'mobile', 2100, DATE_SUB(NOW(), INTERVAL 2 DAY), NOW()),
    -- Hotspot Farmácia
    (@hotspot2_id, 4, MD5('device004'), '192.168.1.20', 'mobile', 1500, NOW(), NOW()),
    (@hotspot2_id, 4, MD5('device005'), '192.168.1.21', 'tablet', 2700, NOW(), NOW()),
    (@hotspot2_id, 4, MD5('device006'), '192.168.1.22', 'desktop', 4200, DATE_SUB(NOW(), INTERVAL 1 DAY), NOW());

-- ═══════════════════════════════════════════════════════════════
-- VERIFICAÇÃO FINAL
-- ═══════════════════════════════════════════════════════════════

SELECT '════════════════════════════════════════════════════════' as '';
SELECT 'DADOS CRIADOS COM SUCESSO!' as '';
SELECT '════════════════════════════════════════════════════════' as '';
SELECT '' as '';
SELECT 'Resumo dos Dados Criados:' as '';
SELECT '' as '';

SELECT
    'Clientes' as tipo,
    COUNT(*) as total
FROM empresas
WHERE empresa_pai_id = 4 AND tipo_empresa = 'cliente'

UNION ALL

SELECT
    'Hotspots' as tipo,
    COUNT(*) as total
FROM hotspots
WHERE franquia_id = 4

UNION ALL

SELECT
    'Criativos' as tipo,
    COUNT(*) as total
FROM criativos
WHERE franquia_id = 4 OR empresa_legado_id = 4

UNION ALL

SELECT
    'Publicações' as tipo,
    COUNT(*) as total
FROM publicacoes
WHERE franquia_id = 4

UNION ALL

SELECT
    'Impressões' as tipo,
    COUNT(*) as total
FROM publicacao_impressoes pi
JOIN publicacoes p ON pi.publicacao_id = p.id
WHERE p.franquia_id = 4

UNION ALL

SELECT
    'Cliques' as tipo,
    COUNT(*) as total
FROM publicacao_cliques pc
JOIN publicacoes p ON pc.publicacao_id = p.id
WHERE p.franquia_id = 4

UNION ALL

SELECT
    'Logs WiFi' as tipo,
    COUNT(*) as total
FROM logs_acesso_wifi
WHERE franquia_id = 4;
