# 4. Technical Assumptions ## Repository Structure **Monorepo** - Projeto NextJS único contendo frontend e API routes ## Service Architecture **Monolith com API Routes do NextJS** - Frontend NextJS com API routes para comunicação com EvolutionAPI e Supabase. Supabase gerencia autenticação, banco de dados (schema `portal`), e recuperação de senha via SMTP. ## Testing Requirements **Manual Testing** - POC focada em validação manual, sem suite de testes automatizados inicialmente. Conveniente incluir logs detalhados para debugging. ## Additional Technical Assumptions - **Framework:** NextJS 14+ (App Router) - **UI Components:** Shadcn/ui ou TailwindCSS puro para tema escuro e componentes - **Auth:** Supabase Auth (unificado com projeto existente) - **Database:** Supabase PostgreSQL, schema `portal` - **EvolutionAPI:** Integração via fetch/axios com endpoints REST - **OAuth Google Calendar:** Redirecionamento para n8n webhook (n8n gerencia credenciais) - **Deployment:** Vercel (recomendado para NextJS) ou outra plataforma com suporte a variáveis de ambiente - **Environment Variables:** ``` EVOLUTION_API_URL EVOLUTION_API_KEY EVOLUTION_INSTANCE_NAMES (comma-separated) N8N_OAUTH_URL SUPABASE_URL SUPABASE_ANON_KEY SUPABASE_SERVICE_ROLE_KEY NEXT_PUBLIC_SITE_URL ``` - **Estado:** Usar React state/hooks para gerenciar status de conexões, evitar bibliotecas de estado pesadas - **Polling:** Implementar polling simples (ex: a cada 5s) para atualizar status de instâncias WhatsApp se necessário ---