-- =============================================================================
-- SEED 011 — Features (capacidades do sistema)
-- =============================================================================
-- Idempotente: ON CONFLICT (id) DO UPDATE
-- UUIDs preservados do data_dump original.
--
-- 26 features organizadas por domínio:
--   agenda.*            → visualizar, gerenciar agenda
--   patients.*          → módulo de pacientes
--   online_scheduling.* → agendamento online
--   supervisor.*        → supervisão clínica
--   reports / reminders → relatórios e lembretes
--   clinic / branding   → funcionalidades de clínica
--   intake              → triagem / cadastro externo
-- =============================================================================

BEGIN;

INSERT INTO public.features (id, key, description, created_at, descricao, name)
VALUES
  -- ── Agenda ──
  ('5e539124-630f-4c2a-a9de-7999317085e6', 'agenda.view',               NULL,                                                    '2026-02-21 02:36:01.562728+00', 'Visualizar agenda',                                                              'Visualizar Agenda'),
  ('a74fef14-c9d9-4884-ba45-f81c60e0783a', 'agenda.manage',             NULL,                                                    '2026-02-21 02:35:50.629667+00', 'Adicionar Compromissos na agenda',                                               'Gerenciar Agenda'),

  -- ── Pacientes ──
  ('a56482a1-0787-49da-90a7-e1857488734a', 'patients',                  'Patients module',                                       '2026-03-02 12:35:19.955748+00', 'Pacientes',                                                                      'Pacientes'),
  ('57f631a1-9ebe-480b-a2cb-144ad32ff5f0', 'patients.view',             NULL,                                                    '2026-02-28 11:15:14.275572+00', 'Visualizar pacientes',                                                           'Visualizar Pacientes'),
  ('4e5bc50b-e339-42fe-9d91-61e8555f83e7', 'patients.manage',           NULL,                                                    '2026-02-28 11:15:14.275572+00', 'Gerenciar pacientes',                                                            'Gerenciar Pacientes'),

  -- ── Agendamento Online ──
  ('53a48c3b-0617-4618-adf8-f3a255c51ee4', 'online_scheduling',         'Online scheduling capability',                          '2026-03-01 09:59:15.432733+00', 'Agendamento online',                                                             'Agendamento Online (Público)'),
  ('5739aa27-b089-4b15-b149-31b13d768825', 'online_scheduling.manage',  'Gerenciar agendamento online (config/admin)',            '2026-02-15 21:50:02.056357+00', 'Gerenciar agendamento online (admin)',                                            'Agendamento Online'),
  ('0bfe0b1c-8c3d-4c0c-af29-2ddc24f31bc7', 'online_scheduling.public',  'Página pública de agendamento',                         '2026-02-15 21:50:02.056357+00', 'Página pública de agendamento',                                                  'Página Pública de Agendamento'),

  -- ── Supervisão ──
  ('9ab8bdbb-838b-4946-aa5d-fd9cfdd257b3', 'supervisor.access',         NULL,                                                    '2026-03-05 00:58:17.218326+00', 'Acesso básico ao espaço de supervisão (sala, lista de supervisionados).',         'Acesso à Supervisão'),
  ('1167b54a-0e93-43a2-94d7-c12e64eb56de', 'supervisor.invite',         NULL,                                                    '2026-03-05 00:58:17.218326+00', 'Permite convidar terapeutas para participar da sala de supervisão.',              'Convidar Supervisionados'),
  ('761e4495-b46a-4791-9519-86ffe48dc47f', 'supervisor.sessions',       NULL,                                                    '2026-03-05 00:58:17.218326+00', 'Agendamento e registro de sessões de supervisão.',                               'Sessões de Supervisão'),
  ('7e82ee01-44f6-4b3f-9861-840c58e13f58', 'supervisor.reports',        NULL,                                                    '2026-03-05 00:58:17.218326+00', 'Relatórios avançados de progresso e evolução dos supervisionados.',               'Relatórios de Supervisão'),

  -- ── Relatórios ──
  ('b3efa25d-60a4-4974-8153-6ec098b3d477', 'reports_basic',             'Basic reports',                                         '2026-03-01 09:59:15.432733+00', 'Relatórios básicos',                                                             'Relatórios Básicos'),
  ('bf133ad1-da8e-4ea9-bd66-21901cb50075', 'reports_advanced',          'Advanced reports',                                      '2026-03-01 09:59:15.432733+00', 'Relatórios avançados',                                                           'Relatórios Avançados (v2)'),
  ('a830e45b-3bb4-4b17-812d-fe83777a2377', 'advanced_reports',          'Relatórios avançados (KPIs, filtros e exportações)',     '2026-02-15 23:29:55.845638+00', 'Relatórios avançados',                                                           'Relatórios Avançados'),

  -- ── Lembretes ──
  ('f5d66212-fd73-4472-a306-07928e5deaec', 'reminders',                 'Notifications/reminders capability',                    '2026-03-01 09:59:15.432733+00', 'Lembretes',                                                                      'Lembretes'),
  ('8cc81988-d02a-4542-9cb2-ce2ed7c18d60', 'sms_reminder',              'Lembretes por SMS (confirmações e avisos)',              '2026-02-15 23:29:55.845638+00', 'Lembretes por SMS',                                                              'Lembretes por SMS'),

  -- ── Clínica ──
  ('9b36c65d-b3b3-4bed-b6d5-f7ee8c087c80', 'clinic_calendar',           'Clinic calendar / admin view',                          '2026-03-01 09:59:15.432733+00', 'Agenda da clínica',                                                              'Agenda da Clínica'),
  ('336aeeba-b18e-4e68-8303-d42ba09f4b20', 'secretary',                 'Secretary features (clinic)',                            '2026-03-01 09:59:15.432733+00', 'Secretaria',                                                                     'Secretaria'),
  ('30c9cdd5-7c8c-44d9-8c0b-614165bb9496', 'shared_reception',          'Shared reception / secretary',                          '2026-03-02 12:35:19.955748+00', 'Recepção / Secretária',                                                          'Recepção Compartilhada'),
  ('74fc1321-4d17-49c3-b72e-db3a7f4be451', 'rooms',                     'Rooms / coworking',                                     '2026-03-02 12:35:19.955748+00', 'Salas / Coworking',                                                              'Salas / Coworking'),

  -- ── Intake / Cadastro externo ──
  ('c109ad27-0edf-4774-91a7-94dac4faab49', 'intake_public',             'Public intake link',                                    '2026-03-02 12:35:19.955748+00', 'Link externo de cadastro',                                                       'Link Externo de Cadastro'),
  ('90e92108-8124-40ee-88a0-f0ecafb57d76', 'intakes_pro',               'Cadastros/Intakes PRO (fluxos avançados e automações)', '2026-02-15 23:29:55.845638+00', 'Formulários PRO',                                                                'Formulários PRO'),

  -- ── Branding / API / Auditoria ──
  ('f393178c-284d-422f-b096-8793f85428d5', 'custom_branding',           'Custom branding',                                       '2026-03-01 09:59:15.432733+00', 'Personalização de marca',                                                        'Marca Personalizada'),
  ('d6f54674-ea8b-484b-af0e-99127a510da2', 'api_access',                'API/Integrations access',                               '2026-03-01 09:59:15.432733+00', 'Integrações/API',                                                                'Acesso à API'),
  ('a5593d96-dd95-46bb-bef0-bd379b56ad50', 'audit_log',                 'Audit log capability',                                  '2026-03-01 09:59:15.432733+00', 'Auditoria',                                                                      'Log de Auditoria')

ON CONFLICT (id) DO UPDATE SET
  key        = EXCLUDED.key,
  description = EXCLUDED.description,
  descricao  = EXCLUDED.descricao,
  name       = EXCLUDED.name;


DO $$
BEGIN
  RAISE NOTICE 'seed_011_features: 26 features inseridas/atualizadas.';
END;
$$;

COMMIT;
