╔══════════════════════════════════════════════════════════════════════════════╗
║                    TIPO DE ALCANCE - FLUXO VISUAL                            ║
╚══════════════════════════════════════════════════════════════════════════════╝

┌─────────────────────────────────────────────────────────────────────────────┐
│  PASSO 1: USUÁRIO SELECIONA TIPO DE ALCANCE                                │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌──────────────────────────────────────┐
    │  SELECT: Tipo de Alcance             │
    │  ┌────────────────────────────────┐  │
    │  │  ○ Todos os equipamentos       │◄─┼─── OPÇÃO 1 (padrão)
    │  │  ○ Serial Específico           │◄─┼─── OPÇÃO 2
    │  │  ○ Empresa Específica          │◄─┼─── OPÇÃO 3
    │  └────────────────────────────────┘  │
    └──────────────────────────────────────┘
                    │
                    │ onChange (JavaScript)
                    ▼
        ┌──────────────────────┐
        │  updateFields()      │
        │  - Oculta tudo       │
        │  - Mostra relevante  │
        └──────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│  OPÇÃO 1: TODOS OS EQUIPAMENTOS                                             │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  ✅ tipo_alcance = 'todos'             │
    │  ✅ equipment_serial = NULL            │
    │  ✅ empresa_alcance_id = NULL          │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  NENHUM CAMPO EXTRA APARECE            │
    │  ┌──────────────────────────────────┐  │
    │  │  [Salvar]  [Cancelar]            │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  RESULTADO: Exibe em TODOS             │
    │  equipamentos (1000+)                  │
    └────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│  OPÇÃO 2: SERIAL ESPECÍFICO                                                 │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  ✅ tipo_alcance = 'serial_especifico' │
    │  🔽 CAMPO SERIAL APARECE               │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  📝 Serial do Equipamento *            │
    │  ┌──────────────────────────────────┐  │
    │  │ ABC123456                        │  │
    │  └──────────────────────────────────┘  │
    │                                        │
    │  ┌──────────────────────────────────┐  │
    │  │  [Salvar]  [Cancelar]            │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  ✅ equipment_serial = 'ABC123456'     │
    │  ✅ empresa_alcance_id = NULL          │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  RESULTADO: Exibe APENAS no            │
    │  equipamento ABC123456                 │
    └────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│  OPÇÃO 3: EMPRESA ESPECÍFICA                                                │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  ✅ tipo_alcance = 'empresa'           │
    │  🔽 CAMPO EMPRESA APARECE              │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  📝 Empresa *                          │
    │  ┌──────────────────────────────────┐  │
    │  │ 🔽 Shopping Iguatemi             │  │
    │  │    - Shopping Morumbi            │  │
    │  │    - Shopping Paulista           │  │
    │  └──────────────────────────────────┘  │
    │                                        │
    │  ┌──────────────────────────────────┐  │
    │  │  [Salvar]  [Cancelar]            │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  ✅ equipment_serial = NULL            │
    │  ✅ empresa_alcance_id = 5             │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  RESULTADO: Exibe em TODOS os          │
    │  equipamentos do Shopping Iguatemi     │
    │  (15 equipamentos)                     │
    └────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│  CONSULTA: EQUIPAMENTO ABC123 (Empresa ID 5) SOLICITA PUBLICAÇÕES          │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  Query no Banco:                       │
    │  WHERE (                               │
    │    tipo_alcance = 'todos'              │◄─── Pega todas globais
    │    OR (tipo_alcance = 'serial_especifico'
    │        AND equipment_serial = 'ABC123')│◄─── Pega específicas deste serial
    │    OR (tipo_alcance = 'empresa'        │
    │        AND empresa_alcance_id = 5)     │◄─── Pega da empresa deste equip.
    │  )                                     │
    │  AND status = 'ativa'                  │
    │  AND data_inicio <= NOW()              │
    │  AND data_fim >= NOW()                 │
    └────────────────────────────────────────┘
                    │
                    ▼
    ┌────────────────────────────────────────┐
    │  RESULTADO: Lista de Publicações       │
    │  ┌──────────────────────────────────┐  │
    │  │ Pub #1: Black Friday (todos)     │  │
    │  │ Pub #5: Teste A/B (ABC123)       │  │
    │  │ Pub #8: Promo Iguatemi (emp 5)   │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│  RESUMO DAS VALIDAÇÕES                                                      │
└─────────────────────────────────────────────────────────────────────────────┘

╔═══════════════════╦═══════════════════╦═══════════════════╦═══════════╗
║ Tipo Alcance      ║ equipment_serial  ║ empresa_alcance_id║ Resultado ║
╠═══════════════════╬═══════════════════╬═══════════════════╬═══════════╣
║ todos             ║ NULL              ║ NULL              ║ ✅ VÁLIDO ║
║ serial_especifico ║ 'ABC123'          ║ NULL              ║ ✅ VÁLIDO ║
║ serial_especifico ║ NULL              ║ NULL              ║ ❌ ERRO   ║
║ empresa           ║ NULL              ║ 5                 ║ ✅ VÁLIDO ║
║ empresa           ║ NULL              ║ NULL              ║ ❌ ERRO   ║
╚═══════════════════╩═══════════════════╩═══════════════════╩═══════════╝


┌─────────────────────────────────────────────────────────────────────────────┐
│  BADGES NA LISTAGEM                                                         │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  Publicação #1                         │
    │  ┌──────────────────────────────────┐  │
    │  │ 🌐 Todos os equipamentos         │  │ (badge azul)
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  Publicação #2                         │
    │  ┌──────────────────────────────────┐  │
    │  │ 📊 Serial específico             │  │ (badge amarelo)
    │  │    ABC123456                     │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘

    ┌────────────────────────────────────────┐
    │  Publicação #3                         │
    │  ┌──────────────────────────────────┐  │
    │  │ 🏢 Empresa específica            │  │ (badge ciano)
    │  │    Shopping Iguatemi             │  │
    │  └──────────────────────────────────┘  │
    └────────────────────────────────────────┘

