-- "VENDAS CAIXA" SAI DA LISTA -- o passo 3 do corte (12/10/2026, a resposta 122 do
-- dono; o D227).
--
--     mysql franquiabv < scripts/remover-funcionalidade-vendas-caixa.sql
--
-- Com a aplicacao parada e antes do dump, depois de `pre-migracao-limpeza.sql`.
--
-- POR QUE. Abrir, retirar e fechar o caixa pedem "Vendas nova", no ERP e na tela
-- nova; a API do caixa pedia "Vendas caixa" e, desde 26/09/2026, pede o mesmo do
-- ERP. "Vendas caixa" continuou na tela de permissoes sem governar nada -- so abria
-- o menu Vendas, vazio, para quem nao tinha outra permissao de vendas --, e quem a
-- tirava de alguem achava que tinha tirado o caixa. O dono escolheu "Sai da lista";
-- como a lista nao tem como marcar um item fora de uso, o item e as linhas de quem o
-- tem sao apagados aqui. Ninguem perde o que faz hoje.
--
-- SO JUNTO COM O CODIGO QUE NAO A LE (o mesmo deploy). O `Acl` recusa com excecao o
-- recurso que nao existe, e o `SessaoAcl` de antes de 12/10/2026 lia "Vendas caixa"
-- em todo login: com este roteiro e o codigo velho, ninguem entraria.
--
-- O QUE ELE FAZ: as linhas de `privilegios_usuarios` (as de cada pessoa) e de
-- `privilegios` (o molde dos grupos) da funcionalidade, e depois a funcionalidade. As
-- duas chaves estrangeiras ja sao `ON DELETE CASCADE`; os dois primeiros DELETE sao
-- explicitos para que as contagens de antes digam o que sai. Rodar de novo nao muda
-- nada: as contagens de antes dao zero.
--
-- O ENSAIO e `php scripts/ensaiar-sql-do-passo-3.php`, num banco descartavel com
-- dados inventados; e os tres DELETE, um por linha, sao os que o
-- `VendasCaixaForaDaListaTest` roda dentro da transacao do teste, para provar que o
-- login e a tela nova seguem sem a linha. NAO FOI APLICADO EM COPIA NENHUMA: apagar
-- linha nao esta na autorizacao da resposta 83.

SELECT '=== ANTES (funcionalidade, moldes de grupo, linhas de pessoas)' AS '';
SELECT
    (SELECT COUNT(*) FROM funcionalidades WHERE nome = 'Vendas caixa'),
    (SELECT COUNT(*) FROM privilegios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa')),
    (SELECT COUNT(*) FROM privilegios_usuarios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa'));

START TRANSACTION;
DELETE FROM privilegios_usuarios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa');
DELETE FROM privilegios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa');
DELETE FROM funcionalidades WHERE nome = 'Vendas caixa';
COMMIT;

SELECT '=== DEPOIS (zero nas tres)' AS '';
SELECT
    (SELECT COUNT(*) FROM funcionalidades WHERE nome = 'Vendas caixa'),
    (SELECT COUNT(*) FROM privilegios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa')),
    (SELECT COUNT(*) FROM privilegios_usuarios WHERE funcionalidade IN (SELECT id FROM funcionalidades WHERE nome = 'Vendas caixa'));
