-- Popular tabela roles na VPS com todos os roles necessários
-- Execute: sudo -u postgres psql -d maktubia_points -f popular-roles-vps.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,
    permissions
FROM roles
ORDER BY role_id;

