-- +goose Up
-- +goose StatementBegin

-- Garante que todos os usuários com role='admin' têm permissões completas
-- e usuários role='operador' têm permissões de operação de estoque
UPDATE users
SET permissoes = ARRAY[
  'estoque:create', 'estoque:update', 'estoque:movimento',
  'financeiro:read', 'financeiro:create',
  'clientes:read',   'clientes:create',
  'vendas:read',     'vendas:create',
  'producao:read',   'producao:create',
  'usuarios:read',   'usuarios:create', 'usuarios:update',
  '*:*'
]
WHERE role = 'admin' AND (permissoes = '{}' OR array_length(permissoes,1) IS NULL);

UPDATE users
SET permissoes = ARRAY[
  'estoque:create', 'estoque:update', 'estoque:movimento',
  'clientes:read',  'clientes:create',
  'vendas:read',    'vendas:create',
  'producao:read',  'producao:create'
]
WHERE role = 'operador' AND (permissoes = '{}' OR array_length(permissoes,1) IS NULL);

-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
-- Não reverte propositalmente (seria destrutivo)
-- +goose StatementEnd
