-- +goose Up
-- +goose StatementBegin

-- Adiciona permissões CRM a todos os usuários existentes
UPDATE users
SET permissoes = array_append(permissoes, 'crm:read')
WHERE NOT ('crm:read' = ANY(permissoes)) AND NOT ('*:*' = ANY(permissoes));

UPDATE users
SET permissoes = array_cat(permissoes, ARRAY['crm:read','crm:create','crm:update','crm:delete'])
WHERE role IN ('admin','owner') AND NOT ('*:*' = ANY(permissoes));

UPDATE users
SET permissoes = array_cat(permissoes, ARRAY['crm:read','crm:create','crm:update'])
WHERE role = 'operador' AND NOT ('crm:read' = ANY(permissoes));

-- Garante admin com *:* tem tudo
UPDATE users
SET permissoes = ARRAY['*:*']
WHERE role IN ('admin','owner') AND NOT ('*:*' = ANY(permissoes));

-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
-- Reversão não aplicada intencionalmente
-- +goose StatementEnd
