-- SQL para listar todos os usuários que NÃO são estudantes
-- Retorna: Nome completo, Telefone, E-mail, Key
-- Exclui usuários com role 'Estudante'

SELECT CONCAT(u.name, ' ', u.last_name) as 'Nome completo', u.phone as 'Telefone', u.email as 'E-mail', u.key as 'Key'
FROM
    users u
    LEFT JOIN model_has_roles mhr ON mhr.model_id = u.id
    AND mhr.model_type = 'App\\Models\\User'
    LEFT JOIN roles r ON r.id = mhr.role_id
WHERE
    -- Exclui usuários que têm a role 'Estudante'
    (
        r.name != 'Estudante'
        OR r.name IS NULL
    )

-- Opcional: exclui usuários sem role alguma
-- AND r.name IS NOT NULL

-- Opcional: inclui apenas usuários ativos (se houver campo de status)
-- AND u.status = 'active'

ORDER BY u.name, u.last_name;

-- Versão alternativa mais específica (apenas usuários com roles específicas):
/*
SELECT 
CONCAT(u.name, ' ', u.last_name) as 'Nome completo',
u.phone as 'Telefone',
u.email as 'E-mail',
u.key as 'Key',
r.name as 'Role'

FROM users u
INNER JOIN model_has_roles mhr ON mhr.model_id = u.id 
AND mhr.model_type = 'App\\Models\\User'
INNER JOIN roles r ON r.id = mhr.role_id

WHERE 
r.name IN ('Admin', 'Super Admin', 'Afiliado', 'Diretor de Clube', 'Supervisor Regional', 'Juiz', 'Sem Função')

ORDER BY r.name, u.name, u.last_name;
*/
