#!/bin/bash
# Script para popular tabela roles na VPS
# Execute na VPS: bash popular-roles-vps.sh

cd /var/www/maktubia-backend

echo "🔧 Populando tabela roles com todos os roles necessários..."
echo ""

sudo -u postgres psql -d maktubia_points << 'SQL'
-- Inserir roles padrão
INSERT INTO roles (role_name, role_description, permissions)
VALUES 
    -- Role "user" - Cliente padrão
    ('user', 'Cliente padrão', '{
        "purchases": ["read", "create"],
        "transfers": ["read", "create"],
        "friends": ["read", "create", "accept", "reject"],
        "rewards": ["read", "redeem"],
        "profile": ["read", "update"]
    }'::jsonb),
    
    -- Role "admin" - Administrador completo
    ('admin', 'Administrador', '{
        "*": ["*"]
    }'::jsonb),
    
    -- Role "manager" - Gerente
    ('manager', 'Gerente', '{
        "users": ["read", "update"],
        "customers": ["read", "create", "update"],
        "establishments": ["read", "create", "update", "delete"],
        "purchases": ["read", "confirm", "reject"],
        "campaigns": ["read", "create", "update", "delete"],
        "reports": ["read", "export"],
        "dashboard": ["read"]
    }'::jsonb),
    
    -- Role "employee" - Funcionário
    ('employee', 'Funcionário', '{
        "customers": ["read", "create"],
        "purchases": ["read", "confirm"],
        "establishments": ["read"],
        "campaigns": ["read"]
    }'::jsonb),
    
    -- Role "cashier" - Caixa
    ('cashier', 'Caixa', '{
        "purchases": ["read", "create", "confirm"],
        "customers": ["read"],
        "establishments": ["read"]
    }'::jsonb),
    
    -- Role "supervisor" - Supervisor
    ('supervisor', 'Supervisor', '{
        "users": ["read"],
        "customers": ["read", "create", "update"],
        "establishments": ["read", "update"],
        "purchases": ["read", "confirm", "reject"],
        "campaigns": ["read", "create", "update"],
        "reports": ["read"],
        "dashboard": ["read"]
    }'::jsonb)
ON CONFLICT (role_name) DO UPDATE SET
    role_description = EXCLUDED.role_description,
    permissions = EXCLUDED.permissions;

-- Verificar roles criados
SELECT 
    role_id,
    role_name,
    role_description
FROM roles
ORDER BY role_id;
SQL

echo ""
echo "✅ Tabela roles populada!"
echo ""
echo "🔄 Reiniciando aplicação..."
pm2 restart maktubia-backend

echo ""
echo "✅ Concluído!"
echo ""
echo "📋 Roles criados:"
echo "   1. user - Cliente padrão"
echo "   2. admin - Administrador completo"
echo "   3. manager - Gerente"
echo "   4. employee - Funcionário"
echo "   5. cashier - Caixa"
echo "   6. supervisor - Supervisor"













