From 5a2d24dd9919a669667c31eb6de5cc2f4705b3c0 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Wed, 6 May 2026 15:42:45 -0300 Subject: [PATCH] MelissaAlterarPlano: pagina nativa pra escolha de plano MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Substitui o redirect pra /therapist/upgrade (que sai do overlay Melissa) por uma pagina nativa em /melissa/alterar-plano com o mesmo chrome 2-col das outras. Sidebar (map-side): - Card "Plano atual" — nome destacado em primary box + key + valor + status; ou empty state se nao tem plano pessoal - Card "Filtros" — busca por nome/key/desc + chips Mensal/Anual - Footer: botao "Voltar pro Meu Plano" Main: - Grid responsivo 1/2/3 cols (mobile/md/xl) de plan cards - Cada card: nome + key (mono) + tag "Atual" se for o plano atual, descricao, preco grande (do interval selecionado), CTA primario "Escolher mensal/anual" + 2 botoes secundarios (Mensal | Anual) cada um mostrando seu preco abaixo do label - Card destacado com border primary se for o plano atual - Empty state: filtro vazio com botao "Limpar busca" Logica: - preflight: valida sessao + plano + interval + preco ativo + nao ja estar nesse plano/intervalo - choosePlan: se ja tem subscription -> RPC change_subscription_plan + update do interval; se nao tem -> insert manual em subscriptions. Apos sucesso, emit('goto', 'plano') volta pro MelissaPlano com estado fresh. Wire-up: - MelissaLayout: import + render `` com @goto="abrirSecao" - 'alterar-plano' adicionado em SECOES + MELISSA_NON_CONFIG_SLUGS - MelissaPlano.goUpgrade() agora router.push pra Melissa(secao=alterar-plano) em vez de /therapist/upgrade Espelha o TherapistUpgradePage.vue (subscriptions + plans target=therapist + plan_prices + RPC change_subscription_plan), compativel com fluxo legacy. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/layout/melissa/MelissaAlterarPlano.vue | 1077 ++++++++++++++++++++ src/layout/melissa/MelissaLayout.vue | 11 +- src/layout/melissa/MelissaPlano.vue | 4 +- 3 files changed, 1090 insertions(+), 2 deletions(-) create mode 100644 src/layout/melissa/MelissaAlterarPlano.vue diff --git a/src/layout/melissa/MelissaAlterarPlano.vue b/src/layout/melissa/MelissaAlterarPlano.vue new file mode 100644 index 0000000..f388bc7 --- /dev/null +++ b/src/layout/melissa/MelissaAlterarPlano.vue @@ -0,0 +1,1077 @@ + + + + + diff --git a/src/layout/melissa/MelissaLayout.vue b/src/layout/melissa/MelissaLayout.vue index 91138e2..2325b8d 100644 --- a/src/layout/melissa/MelissaLayout.vue +++ b/src/layout/melissa/MelissaLayout.vue @@ -36,6 +36,7 @@ import MelissaConfiguracoes from './MelissaConfiguracoes.vue'; import MelissaPerfil from './MelissaPerfil.vue'; import MelissaPlano from './MelissaPlano.vue'; import MelissaNegocio from './MelissaNegocio.vue'; +import MelissaAlterarPlano from './MelissaAlterarPlano.vue'; import MelissaEmbed from './MelissaEmbed.vue'; import MelissaCadastrosRecebidos from './MelissaCadastrosRecebidos.vue'; import MelissaAgendamentosRecebidos from './MelissaAgendamentosRecebidos.vue'; @@ -172,6 +173,8 @@ const SECOES = { plano: { label: 'Meu Plano', icon: 'pi pi-credit-card', descricao: 'Assinatura, recursos liberados e historico de mudancas.' }, // Pagina nativa do negocio (MelissaNegocio) — saiu do MelissaConfiguracoes negocio: { label: 'Meu Negócio', icon: 'pi pi-briefcase', descricao: 'Identidade, fiscal, endereco, contato, redes — gamificacao no aside.' }, + // Pagina nativa de alterar plano (MelissaAlterarPlano) — substitui /therapist/upgrade + 'alterar-plano': { label: 'Alterar Plano', icon: 'pi pi-arrow-up-right', descricao: 'Escolha um plano pessoal pra ativar todos os recursos.' }, seguranca: { label: 'Segurança', icon: 'pi pi-shield', descricao: 'Senha, dispositivos confiáveis e sessões.' }, // Onda 1 — pages embedadas via MelissaEmbed (1-coluna, hero glass) 'financeiro': { label: 'Financeiro', icon: 'pi pi-wallet', descricao: 'Visão geral, recebíveis e indicadores.' }, @@ -198,7 +201,7 @@ const MELISSA_NON_CONFIG_SLUGS = new Set([ 'tags', 'grupos', 'cadastros-recebidos', 'medicos', 'agendamentos-recebidos', 'link-externo', 'notificacoes', 'financeiro', 'financeiro-lancamentos', 'documentos', 'documentos-templates', 'relatorios', - 'perfil', 'plano', 'negocio', + 'perfil', 'plano', 'negocio', 'alterar-plano', ...MELISSA_EMBED_KEYS ]); // Aliases "bonitos" + INLINE_KEYS reconhecidos pelo MelissaConfiguracoes. @@ -2228,6 +2231,12 @@ function onKeydown(e) { @close="fecharSecao" /> + +