
📍Skutr Docs — Dia 12. Multi-organizações
Ontem — precisão jurídica dos prompts e adaptação mobile. Hoje — o freelancer deixou de estar vinculado a um único CNPJ.
—
🏢 Organizações — entidade separada
Antes, os dados bancários ficavam no perfil do usuário. Um CNPJ, um nome, uma conta corrente. Mas um freelancer pode ser um MEI para pequenos pedidos e uma empresa para grandes. Ou fechar a empresa e voltar a ser MEI — e os documentos antigos devem manter os dados anteriores.
Extraí as organizações para uma tabela separada. 12 campos, relação 1:N com o usuário, flag "padrão". A migração transferiu automaticamente os dados existentes do perfil para a primeira organização — nenhum usuário perdeu nada.
API CRUD, página de gerenciamento no painel, seleção de organização em todos os quatro formulários de documentos. Bot: "Meus dados" virou "Minhas organizações" — lista com ⭐️ na principal, adicionar novas, alternar entre elas.
—
🔀 Escolha da organização ao criar documento
Se houver apenas uma organização, tudo funciona como antes, o usuário não percebe nada. Se houver duas ou mais, antes de criar fatura, recibo, proposta ou contrato, aparece a etapa "Escolha a organização executora" com botões inline.
A organização selecionada é passada para o gerador e registrada no documento.
Arquiteturalmente: _maybe_choose_org() — helper único para todos os quatro FSMs. Um padrão, quatro pontos de chamada, zero duplicação.
—
✏️ Edição de todos os documentos no painel
Faturas e recibos podiam ser editados após a criação. Propostas e contratos — apenas durante a criação no modal de pré-visualização. Após salvar — somente leitura. Por quê? Porque canEdit verificava apenas invoice e act.
Transferi a lógica completa de edição do modal para a página do documento. Proposta: título, introdução, seções com itens, valor por posição com cálculo automático, prazo de validade, próximos passos. Contrato: preâmbulo, seções com parágrafos (adicionar/remover), valor. Agora um documento criado por voz no bot às 2 da manhã pode ser editado tranquilamente pela manhã no painel.
—
🧹 Três pequenas coisas que irritavam
Badges sem legenda. Documentos do bot via "documentos rápidos" eram criados com source="quick". O frontend só conhecia "bot" e "web". 27 documentos ficaram sem etiqueta. Mudei para "bot", atualizei os existentes com um único UPDATE.
Navegação de volta. Você entra na seção "Faturas", abre uma fatura específica, clica "Para documentos" — vai para "Todos". Agora o botão diz "Para faturas" e retorna à seção de faturas. Parâmetro de consulta ?tab=invoice — simples e confiável.
Pesquisa no bot. Botão "🔍 Pesquisar documento" em "Meus documentos". Mas os documentos já estão divididos em seções, e no painel há pesquisa completa com filtros. Removi. Menos botões — menos carga cognitiva.
—
💡 Insight do dia
Multi-organizações não é um recurso para corporações. É a realidade do freelancer. Um MEI abre uma empresa — e precisa de ambos os conjuntos de dados. Um designer trabalha como pessoa física para clientes nacionais e como empresa para clientes internacionais. Se o produto prende a pessoa a uma única entidade jurídica, ele não entende seu público.
—
🎯 Resumo do dia: modelo Organization com API CRUD e migração, seleção de organização no bot quando 2+ orgs, edição completa de propostas e contratos no painel, correção de badges source, navegação por abas, limpeza de UI.
—
#buildinpublic #skutrdocs #AI #freela #MEI #startup #SaaS #produto #UX
Comentários
0Ainda não há comentários.