63 lines
3.0 KiB
SQL
63 lines
3.0 KiB
SQL
-- ═══════════════════════════════════════════════════════════════════════════
|
|
-- Feature keys do Agendador Online
|
|
-- Execute no Supabase SQL Editor
|
|
-- ═══════════════════════════════════════════════════════════════════════════
|
|
|
|
-- ── 1. Inserir as features ──────────────────────────────────────────────────
|
|
INSERT INTO public.features (key, name, descricao)
|
|
VALUES
|
|
(
|
|
'agendador.online',
|
|
'Agendador Online',
|
|
'Permite que pacientes solicitem agendamentos via link público. Inclui aprovação manual ou automática, controle de horários e notificações.'
|
|
),
|
|
(
|
|
'agendador.link_personalizado',
|
|
'Link Personalizado do Agendador',
|
|
'Permite que o profissional escolha um slug de URL próprio para o agendador (ex: /agendar/dra-ana-silva) em vez de um link gerado automaticamente.'
|
|
)
|
|
ON CONFLICT (key) DO UPDATE
|
|
SET name = EXCLUDED.name,
|
|
descricao = EXCLUDED.descricao;
|
|
|
|
-- ── 2. Vincular aos planos ──────────────────────────────────────────────────
|
|
-- ATENÇÃO: ajuste os filtros de plan key/name conforme seus planos reais.
|
|
-- Exemplo: agendador.online disponível para planos PRO e acima.
|
|
-- agendador.link_personalizado apenas para planos Elite/Superior.
|
|
|
|
-- agendador.online → todos os planos com target 'therapist' ou 'clinic'
|
|
-- (Adapte o WHERE conforme necessário)
|
|
INSERT INTO public.plan_features (plan_id, feature_id, enabled)
|
|
SELECT
|
|
p.id,
|
|
f.id,
|
|
true
|
|
FROM public.plans p
|
|
CROSS JOIN public.features f
|
|
WHERE f.key = 'agendador.online'
|
|
AND p.is_active = true
|
|
-- Comente a linha abaixo para liberar para TODOS os planos:
|
|
-- AND p.key IN ('pro', 'elite', 'clinic_pro', 'clinic_elite')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- agendador.link_personalizado → apenas planos superiores
|
|
-- Deixe comentado e adicione manualmente quando definir os planos:
|
|
-- INSERT INTO public.plan_features (plan_id, feature_id, enabled)
|
|
-- SELECT p.id, f.id, true
|
|
-- FROM public.plans p
|
|
-- CROSS JOIN public.features f
|
|
-- WHERE f.key = 'agendador.link_personalizado'
|
|
-- AND p.key IN ('elite', 'clinic_elite', 'pro_plus')
|
|
-- ON CONFLICT DO NOTHING;
|
|
|
|
-- ── 3. Verificação ─────────────────────────────────────────────────────────
|
|
SELECT
|
|
f.key,
|
|
f.name,
|
|
COUNT(pf.plan_id) AS planos_vinculados
|
|
FROM public.features f
|
|
LEFT JOIN public.plan_features pf ON pf.feature_id = f.id AND pf.enabled = true
|
|
WHERE f.key IN ('agendador.online', 'agendador.link_personalizado')
|
|
GROUP BY f.key, f.name
|
|
ORDER BY f.key;
|