ZERADO
This commit is contained in:
296
Novo-DB/migration_001.sql
Normal file
296
Novo-DB/migration_001.sql
Normal file
@@ -0,0 +1,296 @@
|
||||
-- =============================================================================
|
||||
-- SEED 001 — Usuários fictícios para teste
|
||||
-- =============================================================================
|
||||
-- Execute APÓS migration_001.sql
|
||||
--
|
||||
-- Usuários criados:
|
||||
-- paciente@agenciapsi.com.br senha: Teste@123 → patient
|
||||
-- terapeuta@agenciapsi.com.br senha: Teste@123 → therapist
|
||||
-- clinica1@agenciapsi.com.br senha: Teste@123 → clinic_coworking
|
||||
-- clinica2@agenciapsi.com.br senha: Teste@123 → clinic_reception
|
||||
-- clinica3@agenciapsi.com.br senha: Teste@123 → clinic_full
|
||||
-- saas@agenciapsi.com.br senha: Teste@123 → saas_admin
|
||||
-- =============================================================================
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- Limpeza de seeds anteriores
|
||||
-- ============================================================
|
||||
|
||||
ALTER TABLE public.patient_groups DISABLE TRIGGER ALL;
|
||||
|
||||
DELETE FROM public.tenant_members
|
||||
WHERE user_id IN (
|
||||
SELECT id FROM auth.users
|
||||
WHERE email IN (
|
||||
'paciente@agenciapsi.com.br',
|
||||
'terapeuta@agenciapsi.com.br',
|
||||
'clinica1@agenciapsi.com.br',
|
||||
'clinica2@agenciapsi.com.br',
|
||||
'clinica3@agenciapsi.com.br',
|
||||
'saas@agenciapsi.com.br'
|
||||
)
|
||||
);
|
||||
|
||||
DELETE FROM public.tenants WHERE id IN (
|
||||
'bbbbbbbb-0002-0002-0002-000000000002',
|
||||
'bbbbbbbb-0003-0003-0003-000000000003',
|
||||
'bbbbbbbb-0004-0004-0004-000000000004',
|
||||
'bbbbbbbb-0005-0005-0005-000000000005'
|
||||
);
|
||||
|
||||
DELETE FROM auth.users WHERE email IN (
|
||||
'paciente@agenciapsi.com.br',
|
||||
'terapeuta@agenciapsi.com.br',
|
||||
'clinica1@agenciapsi.com.br',
|
||||
'clinica2@agenciapsi.com.br',
|
||||
'clinica3@agenciapsi.com.br',
|
||||
'saas@agenciapsi.com.br'
|
||||
);
|
||||
|
||||
ALTER TABLE public.patient_groups ENABLE TRIGGER ALL;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 1. Usuários no auth.users
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO auth.users (
|
||||
id, email, encrypted_password, email_confirmed_at,
|
||||
created_at, updated_at, raw_user_meta_data, role, aud
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
'aaaaaaaa-0001-0001-0001-000000000001',
|
||||
'paciente@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Ana Paciente"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
),
|
||||
(
|
||||
'aaaaaaaa-0002-0002-0002-000000000002',
|
||||
'terapeuta@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Bruno Terapeuta"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
),
|
||||
(
|
||||
'aaaaaaaa-0003-0003-0003-000000000003',
|
||||
'clinica1@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Clinica Espaco Psi"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
),
|
||||
(
|
||||
'aaaaaaaa-0004-0004-0004-000000000004',
|
||||
'clinica2@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Clinica Mente Sa"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
),
|
||||
(
|
||||
'aaaaaaaa-0005-0005-0005-000000000005',
|
||||
'clinica3@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Clinica Bem Estar"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
),
|
||||
(
|
||||
'aaaaaaaa-0006-0006-0006-000000000006',
|
||||
'saas@agenciapsi.com.br',
|
||||
crypt('Teste@123', gen_salt('bf')),
|
||||
now(), now(), now(),
|
||||
'{"name": "Admin Plataforma"}'::jsonb,
|
||||
'authenticated', 'authenticated'
|
||||
);
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 2. Profiles
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.profiles (id, role, account_type, full_name)
|
||||
VALUES
|
||||
('aaaaaaaa-0001-0001-0001-000000000001', 'portal_user', 'patient', 'Ana Paciente'),
|
||||
('aaaaaaaa-0002-0002-0002-000000000002', 'portal_user', 'therapist', 'Bruno Terapeuta'),
|
||||
('aaaaaaaa-0003-0003-0003-000000000003', 'portal_user', 'clinic', 'Clinica Espaco Psi'),
|
||||
('aaaaaaaa-0004-0004-0004-000000000004', 'portal_user', 'clinic', 'Clinica Mente Sa'),
|
||||
('aaaaaaaa-0005-0005-0005-000000000005', 'portal_user', 'clinic', 'Clinica Bem Estar'),
|
||||
('aaaaaaaa-0006-0006-0006-000000000006', 'saas_admin', 'free', 'Admin Plataforma')
|
||||
ON CONFLICT (id) DO UPDATE SET
|
||||
role = EXCLUDED.role,
|
||||
account_type = EXCLUDED.account_type,
|
||||
full_name = EXCLUDED.full_name;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 3. SaaS Admin
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.saas_admins (user_id, created_at)
|
||||
VALUES ('aaaaaaaa-0006-0006-0006-000000000006', now())
|
||||
ON CONFLICT (user_id) DO NOTHING;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 4. Tenant do terapeuta
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.tenants (id, name, kind, created_at)
|
||||
VALUES ('bbbbbbbb-0002-0002-0002-000000000002', 'Bruno Terapeuta', 'therapist', now())
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
INSERT INTO public.tenant_members (tenant_id, user_id, role, status, created_at)
|
||||
VALUES ('bbbbbbbb-0002-0002-0002-000000000002', 'aaaaaaaa-0002-0002-0002-000000000002', 'tenant_admin', 'active', now())
|
||||
ON CONFLICT (tenant_id, user_id) DO NOTHING;
|
||||
|
||||
DO $$ BEGIN
|
||||
PERFORM public.seed_determined_commitments('bbbbbbbb-0002-0002-0002-000000000002');
|
||||
END; $$;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 5. Tenant Clinica 1 — Coworking
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.tenants (id, name, kind, created_at)
|
||||
VALUES ('bbbbbbbb-0003-0003-0003-000000000003', 'Clinica Espaco Psi', 'clinic_coworking', now())
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
INSERT INTO public.tenant_members (tenant_id, user_id, role, status, created_at)
|
||||
VALUES ('bbbbbbbb-0003-0003-0003-000000000003', 'aaaaaaaa-0003-0003-0003-000000000003', 'tenant_admin', 'active', now())
|
||||
ON CONFLICT (tenant_id, user_id) DO NOTHING;
|
||||
|
||||
DO $$ BEGIN
|
||||
PERFORM public.seed_determined_commitments('bbbbbbbb-0003-0003-0003-000000000003');
|
||||
END; $$;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 6. Tenant Clinica 2 — Recepcao
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.tenants (id, name, kind, created_at)
|
||||
VALUES ('bbbbbbbb-0004-0004-0004-000000000004', 'Clinica Mente Sa', 'clinic_reception', now())
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
INSERT INTO public.tenant_members (tenant_id, user_id, role, status, created_at)
|
||||
VALUES ('bbbbbbbb-0004-0004-0004-000000000004', 'aaaaaaaa-0004-0004-0004-000000000004', 'tenant_admin', 'active', now())
|
||||
ON CONFLICT (tenant_id, user_id) DO NOTHING;
|
||||
|
||||
DO $$ BEGIN
|
||||
PERFORM public.seed_determined_commitments('bbbbbbbb-0004-0004-0004-000000000004');
|
||||
END; $$;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 7. Tenant Clinica 3 — Full
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.tenants (id, name, kind, created_at)
|
||||
VALUES ('bbbbbbbb-0005-0005-0005-000000000005', 'Clinica Bem Estar', 'clinic_full', now())
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
INSERT INTO public.tenant_members (tenant_id, user_id, role, status, created_at)
|
||||
VALUES ('bbbbbbbb-0005-0005-0005-000000000005', 'aaaaaaaa-0005-0005-0005-000000000005', 'tenant_admin', 'active', now())
|
||||
ON CONFLICT (tenant_id, user_id) DO NOTHING;
|
||||
|
||||
DO $$ BEGIN
|
||||
PERFORM public.seed_determined_commitments('bbbbbbbb-0005-0005-0005-000000000005');
|
||||
END; $$;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 8. Subscriptions ativas
|
||||
-- ============================================================
|
||||
|
||||
-- Paciente → patient_free
|
||||
INSERT INTO public.subscriptions (
|
||||
user_id, plan_id, plan_key, status, interval,
|
||||
current_period_start, current_period_end, source, started_at, activated_at
|
||||
)
|
||||
SELECT
|
||||
'aaaaaaaa-0001-0001-0001-000000000001',
|
||||
p.id, p.key, 'active', 'month',
|
||||
now(), now() + interval '30 days', 'seed', now(), now()
|
||||
FROM public.plans p WHERE p.key = 'patient_free';
|
||||
|
||||
-- Terapeuta → therapist_free
|
||||
INSERT INTO public.subscriptions (
|
||||
user_id, plan_id, plan_key, status, interval,
|
||||
current_period_start, current_period_end, source, started_at, activated_at
|
||||
)
|
||||
SELECT
|
||||
'aaaaaaaa-0002-0002-0002-000000000002',
|
||||
p.id, p.key, 'active', 'month',
|
||||
now(), now() + interval '30 days', 'seed', now(), now()
|
||||
FROM public.plans p WHERE p.key = 'therapist_free';
|
||||
|
||||
-- Clinica 1 → clinic_free
|
||||
INSERT INTO public.subscriptions (
|
||||
tenant_id, plan_id, plan_key, status, interval,
|
||||
current_period_start, current_period_end, source, started_at, activated_at
|
||||
)
|
||||
SELECT
|
||||
'bbbbbbbb-0003-0003-0003-000000000003',
|
||||
p.id, p.key, 'active', 'month',
|
||||
now(), now() + interval '30 days', 'seed', now(), now()
|
||||
FROM public.plans p WHERE p.key = 'clinic_free';
|
||||
|
||||
-- Clinica 2 → clinic_free
|
||||
INSERT INTO public.subscriptions (
|
||||
tenant_id, plan_id, plan_key, status, interval,
|
||||
current_period_start, current_period_end, source, started_at, activated_at
|
||||
)
|
||||
SELECT
|
||||
'bbbbbbbb-0004-0004-0004-000000000004',
|
||||
p.id, p.key, 'active', 'month',
|
||||
now(), now() + interval '30 days', 'seed', now(), now()
|
||||
FROM public.plans p WHERE p.key = 'clinic_free';
|
||||
|
||||
-- Clinica 3 → clinic_free
|
||||
INSERT INTO public.subscriptions (
|
||||
tenant_id, plan_id, plan_key, status, interval,
|
||||
current_period_start, current_period_end, source, started_at, activated_at
|
||||
)
|
||||
SELECT
|
||||
'bbbbbbbb-0005-0005-0005-000000000005',
|
||||
p.id, p.key, 'active', 'month',
|
||||
now(), now() + interval '30 days', 'seed', now(), now()
|
||||
FROM public.plans p WHERE p.key = 'clinic_free';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 9. Vincula terapeuta à Clinica 3 (exemplo de associacao)
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO public.tenant_members (tenant_id, user_id, role, status, created_at)
|
||||
VALUES (
|
||||
'bbbbbbbb-0005-0005-0005-000000000005',
|
||||
'aaaaaaaa-0002-0002-0002-000000000002',
|
||||
'therapist', 'active', now()
|
||||
)
|
||||
ON CONFLICT (tenant_id, user_id) DO NOTHING;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- Confirmacao
|
||||
-- ============================================================
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE '✅ Seed aplicado com sucesso.';
|
||||
RAISE NOTICE ' paciente@agenciapsi.com.br → patient';
|
||||
RAISE NOTICE ' terapeuta@agenciapsi.com.br → therapist';
|
||||
RAISE NOTICE ' clinica1@agenciapsi.com.br → clinic_coworking';
|
||||
RAISE NOTICE ' clinica2@agenciapsi.com.br → clinic_reception';
|
||||
RAISE NOTICE ' clinica3@agenciapsi.com.br → clinic_full';
|
||||
RAISE NOTICE ' saas@agenciapsi.com.br → saas_admin';
|
||||
RAISE NOTICE ' Senha: Teste@123';
|
||||
END;
|
||||
$$;
|
||||
Reference in New Issue
Block a user