Agenda, Agendador, Configurações
This commit is contained in:
62
migrations/agendador_features.sql
Normal file
62
migrations/agendador_features.sql
Normal file
@@ -0,0 +1,62 @@
|
||||
-- ═══════════════════════════════════════════════════════════════════════════
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user