Documento de análise funcional
Levantamento profissional do projecto, casos de uso reais, actores e diagramas
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.
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.
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.
| Capacidade | Valor para o utilizador | Exemplos de dados |
|---|---|---|
| Descoberta pública | Encontrar oportunidades, negócios, sectores, serviços e referências territoriais. | sectors, opportunities, existing_businesses, investment_zones |
| Captação de interesse | Enviar manifestação associada a uma oportunidade ou negócio, com consentimento. | interest_requests, consents, receipts |
| Jornada do investidor | Guardar itens, criar dossier/submissão, anexar documentos e acompanhar mensagens. | investment_submissions, revisions, messages, attachments |
| Tratamento institucional | Qualificar pedidos, atribuir responsável, criar tarefas e acompanhar a negociação. | leads, contacts, crm_opportunities, tasks, activities |
| Planeamento territorial | Relacionar projectos, clusters, corredores, localizações e zonas. | projects, economic_clusters, development_corridors, geo_locations |
| Documentos e evidência | Preservar origem, versões, hash, scan, classificação e autorização de divulgação. | documents, document_versions, malware_scans, associations |
| Simulação e regras fiscais | Guardar rascunhos, executar simulações com parâmetros/fontes rastreáveis e governar versões. | simulations, scenarios, results, tax_rule_versions, legal_sources |
| Serviços complementares | Registar educação, assistência de terra, parcerias, balcão virtual e apoio com IA. | training needs, land cases, partnerships, desk cases, ai runs |
| Actor | O que pretende | Zona típica |
|---|---|---|
| Visitante | Consultar conteúdos públicos e iniciar interesse, apoio ou simulação. | Portal público |
| Investidor / utilizador registado | Manter perfil, favoritos, rascunhos, submissões, anexos e mensagens. | Área autenticada |
| Promotor / proprietário de negócio | Registar ou actualizar negócio e responder a pedidos de informação. | Área autenticada e workflow de revisão |
| Gestor de portal / CRM | Rever interesses, qualificar leads, atribuir tarefas e gerir conteúdos. | Gestão interna |
| Gestor territorial | Manter projectos, relações, zonas, geometria e referências territoriais. | Gestão interna |
| Revisor documental / gestor fiscal | Validar metadados, evidência, versões e regras sob as respectivas funções. | Gestão restrita |
| Agente de serviço / parceiro institucional | Tratar casos ou colaborar em parcerias e salas. | Serviços e colaboração |
| Administrador / worker | Gerir 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.
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.
Exemplo do percurso mais comum: visitante pesquisa → manifesta interesse → investidor cria/acompanha candidatura → gestão trata o pedido → revisão e decisão.
Resultado: pedido rastreável ligado à oportunidade e encaminhado para tratamento. Entidades: Opportunity, Investor/User, InterestRequest, Consent, Lead, Task, AuditEvent.
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.
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.
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.
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.
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.
| Evento/processo | Gatilho | Frequência confirmada | Leitura operacional |
|---|---|---|---|
| Escalar tarefas vencidas | Scheduler Laravel | A cada 15 minutos; sem sobreposição configurada | Cadência declarada em routes/console.php. O scheduler do servidor tem de estar activo. |
| Executar simulação (RunSimulation) | Pedido de cálculo aceite | Por pedido, via fila, afterCommit | Assíncrono; volume depende da utilização e dos workers. |
| Scan de malware (ScanDocumentForMalware) | Upload ou pedido de análise em fluxos suportados | Por documento, via fila; job único | Depende de worker e scanner. Upload não prova análise concluída. |
| Comparação de compatibilidade MNE | Alteração aplicável do negócio | Por alteração aplicável, em fila de sombra | Job identificado; frequência de alterações não medida. |
| Notificação de interesse | Recepção de interesse | Disparo não confirmado | Job NotifyInterestReceived existe, mas não foi localizada chamada dispatch(). |
| Outbox/inbox e sincronização externa | Evento/mensagem externa | Sem calendário operacional confirmado | Estrutura preparada; documentação indica sincronização real pendente. |
| Pesquisas, submissões, revisões e auditoria | Acção do visitante/utilizador/gestor | Sob procura ou acção; contagem indisponível | Sem 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.
| Grupo | Casos |
|---|---|
| Portal e catálogo | UC-01 Consultar página inicial e serviços; UC-02 Pesquisar sectores e oportunidades; UC-03 Consultar negócio existente. |
| Conta e jornada | UC-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 CRM | UC-10 Gerir negócio existente; UC-11 Tratar interesses no CRM. |
| Território e documentos | UC-12 Gerir catálogo territorial; UC-13 Gerir zonas; UC-14 Carregar, verificar e publicar documento. |
| Simulação/fiscalidade | UC-15 Criar rascunho; UC-16 Executar simulação; UC-17 Gerir regra fiscal. |
| Serviços especializados | UC-18 Gerir educação e competências; UC-19 Assistência de terra; UC-20 Gerir parceria; UC-21 Usar balcão virtual. |
| Transversal | UC-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.
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.