-- ============================================================
-- Script SQL para criar usuária Julia Carvalho com role ADMIN
-- Execute este script no Supabase Dashboard > SQL Editor
-- ============================================================

-- 1. Criar usuário no auth.users (SUBSTITUA O ID abaixo por um UUID gerado)
-- Você pode gerar um UUID em: https://www.uuidgenerator.net/
-- Ou usar: gen_random_uuid()

INSERT INTO auth.users (
  id,
  instance_id,
  email,
  encrypted_password,
  email_confirmed_at,
  created_at,
  updated_at,
  raw_app_meta_data,
  raw_user_meta_data,
  role,
  aud
)
VALUES (
  gen_random_uuid(), -- Gera um UUID automaticamente
  '00000000-0000-0000-0000-000000000000',
  'secretaria.mediconnect@gmail.com',
  crypt('secretaria@mediconnect', gen_salt('bf')), -- Hash bcrypt da senha
  NOW(),
  NOW(),
  NOW(),
  '{"provider": "email", "providers": ["email"]}',
  '{"full_name": "Julia Carvalho", "role": "admin"}',
  'authenticated',
  'authenticated'
)
ON CONFLICT (email) DO NOTHING
RETURNING id;

-- 2. Obter o ID do usuário criado (copie este ID para usar nos próximos passos)
-- Execute esta query separadamente e copie o resultado:
SELECT id, email, raw_user_meta_data 
FROM auth.users 
WHERE email = 'secretaria.mediconnect@gmail.com';

-- 3. Criar perfil na tabela users (SUBSTITUA 'UUID_AQUI' pelo ID obtido acima)
INSERT INTO public.users (
  id,
  email,
  full_name,
  is_admin,
  is_secretary,
  is_admin_or_manager,
  created_at,
  updated_at
)
VALUES (
  (SELECT id FROM auth.users WHERE email = 'secretaria.mediconnect@gmail.com'),
  'secretaria.mediconnect@gmail.com',
  'Julia Carvalho',
  true,
  true,
  true,
  NOW(),
  NOW()
)
ON CONFLICT (id) DO UPDATE SET
  is_admin = true,
  is_secretary = true,
  is_admin_or_manager = true;

-- 4. Adicionar role admin na tabela user_roles
INSERT INTO public.user_roles (
  user_id,
  role,
  created_at
)
VALUES (
  (SELECT id FROM auth.users WHERE email = 'secretaria.mediconnect@gmail.com'),
  'admin',
  NOW()
)
ON CONFLICT (user_id, role) DO NOTHING;

-- 5. Verificar criação
SELECT 
  u.id,
  u.email,
  u.full_name,
  u.is_admin,
  u.is_secretary,
  ur.role
FROM public.users u
LEFT JOIN public.user_roles ur ON ur.user_id = u.id
WHERE u.email = 'secretaria.mediconnect@gmail.com';

-- ============================================================
-- CREDENCIAIS PARA LOGIN:
-- Email: secretaria.mediconnect@gmail.com
-- Senha: secretaria@mediconnect
-- ============================================================
