Documento de análise funcional

InvestMoz

Levantamento profissional do projecto, casos de uso reais, actores e diagramas

Data: 9 de Outubro de 2026
Âmbito: aplicação Laravel/React e documentação do repositório Investidor-V2
Versão: 1.0 · análise do código e dos documentos disponíveis

Portal de descoberta de oportunidades e serviços de investimento, ligado a fluxos autenticados de candidatura, tratamento institucional, evidência documental e acompanhamento.

Documento técnico-funcional. A presença de uma rota, tabela, job ou descrição não demonstra, por si só, activação em produção.

1. Sumário executivo

O InvestMoz é uma plataforma digital que aproxima investidores, promotores e instituições. A experiência começa no portal público, onde se consultam sectores, oportunidades, negócios existentes, território, zonas e serviços. A partir daí, a pessoa pode manifestar interesse, iniciar uma simulação ou pedir apoio. Os percursos que exigem continuidade passam para a área autenticada, onde se mantêm perfil, rascunhos, candidaturas, anexos e comunicação.

Do lado institucional, os pedidos podem ser revistos e acompanhados por CRM local, tarefas, revisões e eventos. A plataforma também contém domínios de catálogo territorial, zonas de investimento, documentação, governação fiscal, educação e competências, assistência de terra, parcerias, balcão virtual e IA baseada em fontes.

Leitura funcional: trata-se de uma plataforma de encaminhamento e gestão de jornadas de investimento, e não apenas de um catálogo de anúncios. A camada pública informa e capta pedidos; a camada autenticada conserva o trabalho; a camada de gestão analisa, valida e decide segundo permissões e evidência.

O README descreve a base inicial de sectores, oportunidades e manifestações de interesse. Rotas, controladores, migrations e documentação de domínio mostram uma solução mais abrangente. O levantamento de casos detalhados tem 24 casos de uso; este relatório acrescenta cenários concretos, diagramas UML/ER e a leitura da frequência dos eventos.

2. O que o projecto faz

CapacidadeValor para o utilizadorExemplos de dados
Descoberta públicaEncontrar oportunidades, negócios, sectores, serviços e referências territoriais.sectors, opportunities, existing_businesses, investment_zones
Captação de interesseEnviar manifestação associada a uma oportunidade ou negócio, com consentimento.interest_requests, consents, receipts
Jornada do investidorGuardar itens, criar dossier/submissão, anexar documentos e acompanhar mensagens.investment_submissions, revisions, messages, attachments
Tratamento institucionalQualificar pedidos, atribuir responsável, criar tarefas e acompanhar a negociação.leads, contacts, crm_opportunities, tasks, activities
Planeamento territorialRelacionar projectos, clusters, corredores, localizações e zonas.projects, economic_clusters, development_corridors, geo_locations
Documentos e evidênciaPreservar origem, versões, hash, scan, classificação e autorização de divulgação.documents, document_versions, malware_scans, associations
Simulação e regras fiscaisGuardar rascunhos, executar simulações com parâmetros/fontes rastreáveis e governar versões.simulations, scenarios, results, tax_rule_versions, legal_sources
Serviços complementaresRegistar educação, assistência de terra, parcerias, balcão virtual e apoio com IA.training needs, land cases, partnerships, desk cases, ai runs

3. Actores e fronteiras de acesso

ActorO que pretendeZona típica
VisitanteConsultar conteúdos públicos e iniciar interesse, apoio ou simulação.Portal público
Investidor / utilizador registadoManter perfil, favoritos, rascunhos, submissões, anexos e mensagens.Área autenticada
Promotor / proprietário de negócioRegistar ou actualizar negócio e responder a pedidos de informação.Área autenticada e workflow de revisão
Gestor de portal / CRMRever interesses, qualificar leads, atribuir tarefas e gerir conteúdos.Gestão interna
Gestor territorialManter projectos, relações, zonas, geometria e referências territoriais.Gestão interna
Revisor documental / gestor fiscalValidar metadados, evidência, versões e regras sob as respectivas funções.Gestão restrita
Agente de serviço / parceiro institucionalTratar casos ou colaborar em parcerias e salas.Serviços e colaboração
Administrador / workerGerir segurança/configuração ou executar trabalho assíncrono autorizado.Administração / sistema

Os nomes acima são papéis funcionais consolidados. A autorização efectiva depende das policies, middleware, MFA, configuração e permissões em vigor.

4. Diagrama de casos de uso com actores

O diagrama destaca actores (“bonecos”) e os principais serviços que usam. As associações mostram interacções típicas; não indicam que todos os serviços estejam activos na mesma instalação.

Sistema InvestMoz Visitante Investidor Gestor Revisor Parceiro Consultar catálogo e mapa Pesquisar oportunidade/negócio Manifestar interesse Executar simulação Criar candidatura / dossier Anexar e acompanhar documentos Tratar interesse no CRM Validar e publicar conteúdo Gerir território e zonas Colaborar em parceria/serviço

Exemplo do percurso mais comum: visitante pesquisa → manifesta interesse → investidor cria/acompanha candidatura → gestão trata o pedido → revisão e decisão.

5. Casos de uso reais — jornadas ilustrativas

UC-A — Investidor encontra oportunidade e manifesta interesse

  1. O visitante consulta sectores, filtra oportunidades por localização e abre o detalhe.
  2. Escolhe “manifestar interesse”, informa contacto, modalidade e mensagem, e aceita o consentimento aplicável.
  3. O sistema valida o alvo, regista o pedido e, quando configurado, um recibo/idempotência.
  4. O investidor pode autenticar-se para guardar a oportunidade ou avançar para uma submissão.
  5. Um gestor consulta o pedido, verifica consentimentos, atribui responsável, qualifica e cria tarefa de seguimento.
  6. As alterações relevantes ficam no histórico; notificações e integrações só são consideradas entregues quando o disparo e o serviço estiverem confirmados.

Resultado: pedido rastreável ligado à oportunidade e encaminhado para tratamento. Entidades: Opportunity, Investor/User, InterestRequest, Consent, Lead, Task, AuditEvent.

UC-B — Proprietário submete um negócio para divulgação

  1. O proprietário cria rascunho e informa modalidade, objectos, localização e documentos de suporte.
  2. Submete o registo; o estado passa para revisão conforme o workflow aplicável.
  3. O gestor analisa e pode aprovar, rejeitar ou pedir informação complementar.
  4. O revisor documental confere original, hash, versão, scan e autorização de divulgação.
  5. Só após as validações necessárias o conteúdo pode ser publicado ao público; publicação não altera a situação jurídica do documento.

Resultado: negócio com histórico e decisão rastreável. Estados documentados: draft → submitted → in_review → approved → published, com ramos needs_information, rejected, withdrawn, suspended e archived.

UC-C — Gestor territorial valida zona e relações

  1. O gestor regista a zona e a referência/fonte pertinente.
  2. Associa localização, operador, categoria, geometria e relações com projectos, clusters ou corredores.
  3. As relações sem evidência verificada permanecem pendentes e identificadas.
  4. Um revisor valida a evidência e as regras de publicação; alterações ficam versionadas.
  5. A zona só aparece no portal conforme estado e autorização de divulgação.

UC-D — Utilizador guarda um rascunho e executa simulação

  1. O utilizador preenche o formulário; os dados incompletos podem ser guardados como rascunho recuperável.
  2. Quando solicita o cálculo, o sistema selecciona questionário e parâmetros elegíveis.
  3. O job de simulação executa após a transacção e grava cenários, resultados, obrigações e fontes usadas.
  4. O relatório pode ser consultado; o rascunho continua distinto do cálculo executado.
Regra de integridade: importar ou publicar fonte documental não activa automaticamente uma regra fiscal. Parâmetros ausentes/ambíguos permanecem indeterminados.

UC-E — Parceiros colaboram numa parceria ou serviço

Um actor cria uma proposta; outro manifesta interesse; após aceitação, os participantes podem colaborar numa sala, trocar mensagens/documentos e acompanhar marcos. O balcão virtual segue padrão semelhante para pedidos de serviço: registo, análise, pedido de documentos, eventos, revisão e resolução.

6. Diagrama de classes (visão lógica)

O diagrama apresenta as classes de domínio principais, atributos representativos e operações. É uma vista funcional; não reproduz todos os campos nem métodos Laravel.

Userid, email, verified_at2FA / passkeys+ authenticate() Investorid, user_id, profilecompany interests+ manageProfile() Opportunitysector, slug, statuslocation, investment+ publish() Sectorid, name, slugactive / published+ listOpportunities() InterestRequesttarget, contact, consentstatus, submitted_at+ submit() / qualify() Lead / Taskowner, next_actiondue_at, status+ assign() / complete() Submissionowner, target, staterevisions, needs+ save() / submit() Documenthash, sourceversion, status+ scan() Project / Zoneterritory, geometryrelations, evidence+ validate() / publish() Simulationquestionnaire, inputscenario, result, sources+ execute() / report() TaxRuleVersionsource, dates, parametersreview / approval state+ resolveForPeriod() AuditEventactor, entityaction, time+ record() 1 : 0..10..*11 : 0..*0..11..*0..*1 : 0..*1 : 0..*

A relação exacta Investor/User, a associação Submission/target e os vínculos Document/entidade podem ser opcionais ou implementados por tabelas polimórficas/de junção; confirme no schema antes de gerar código ou migrações.

7. Diagrama de relacionamento (ER simplificado)

SECTOROPPORTUNITYINTEREST_REQUESTINVESTOR USERSUBMISSIONDOCUMENTAUDIT_EVENT PROJECTCLUSTERINVESTMENT_ZONELEGAL_SOURCE SIMULATIONTAX_RULE_VERSIONSIMULATION_RESULT 1 : N1 : NN : 0..11 : NN : M* via links1 : NN : M*N : M*1 : N1 : N1 : N1 : N1 : Nassociationactorsource

N:M = muitos-para-muitos, normalmente resolvido por tabela de associação. Ligações genéricas de documentos/auditoria podem não ser FKs directas. Este mapa é uma vista funcional, não um substituto do ERD integral em docs/investmoz/erd.mmd e do dicionário de dados.

8. Eventos e frequência

Evento/processoGatilhoFrequência confirmadaLeitura operacional
Escalar tarefas vencidasScheduler LaravelA cada 15 minutos; sem sobreposição configuradaCadência declarada em routes/console.php. O scheduler do servidor tem de estar activo.
Executar simulação (RunSimulation)Pedido de cálculo aceitePor pedido, via fila, afterCommitAssíncrono; volume depende da utilização e dos workers.
Scan de malware (ScanDocumentForMalware)Upload ou pedido de análise em fluxos suportadosPor documento, via fila; job únicoDepende de worker e scanner. Upload não prova análise concluída.
Comparação de compatibilidade MNEAlteração aplicável do negócioPor alteração aplicável, em fila de sombraJob identificado; frequência de alterações não medida.
Notificação de interesseRecepção de interesseDisparo não confirmadoJob NotifyInterestReceived existe, mas não foi localizada chamada dispatch().
Outbox/inbox e sincronização externaEvento/mensagem externaSem calendário operacional confirmadoEstrutura preparada; documentação indica sincronização real pendente.
Pesquisas, submissões, revisões e auditoriaAcção do visitante/utilizador/gestorSob procura ou acção; contagem indisponívelSem logs/analytics não se calculam ocorrências por período.

Frequência configurada não é frequência observada. Não foram disponibilizados logs, contagens de eventos da base activa, filas, analytics nem tráfego HTTP. Assim, eventos por hora/dia/mês, sazonalidade, falhas e utilizadores activos permanecem indeterminados. Não se extrapolam estes valores a partir de testes, seeders, screenshots ou schema.

9. Inventário dos 24 casos de uso

GrupoCasos
Portal e catálogoUC-01 Consultar página inicial e serviços; UC-02 Pesquisar sectores e oportunidades; UC-03 Consultar negócio existente.
Conta e jornadaUC-04 Criar conta/autenticar/recuperar acesso; UC-05 Manifestar interesse numa oportunidade; UC-06 Manifestar interesse num negócio; UC-07 Guardar oportunidade; UC-08 Manter submissão; UC-09 Submeter candidatura.
Negócios e CRMUC-10 Gerir negócio existente; UC-11 Tratar interesses no CRM.
Território e documentosUC-12 Gerir catálogo territorial; UC-13 Gerir zonas; UC-14 Carregar, verificar e publicar documento.
Simulação/fiscalidadeUC-15 Criar rascunho; UC-16 Executar simulação; UC-17 Gerir regra fiscal.
Serviços especializadosUC-18 Gerir educação e competências; UC-19 Assistência de terra; UC-20 Gerir parceria; UC-21 Usar balcão virtual.
TransversalUC-22 Usar IA com evidência; UC-23 Sincronizar sistemas externos; UC-24 Auditar alterações.

Os pré-requisitos, fluxos alternativos e tabelas associadas por UC encontram-se no ficheiro casos-de-uso-aplicacao-actual.md.

10. Integridade, segurança e limitações

11. Fontes de análise

O inventário cobriu 981 caminhos listados por rg --files, excluindo vendor e node_modules. Isso descreve o repositório acessível, não anexos externos, conteúdo de armazenamento privado ou base de dados de produção.