funifier-mcp 0.2.0 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.cursor/rules/funifier.mdc +91 -0
  2. package/.github/copilot-instructions.md +83 -0
  3. package/AGENTS.md +97 -0
  4. package/README.md +247 -78
  5. package/datasource-funifier-docs/knowledge/guides/aggregates.md +152 -152
  6. package/datasource-funifier-docs/knowledge/guides/database-access.md +132 -132
  7. package/datasource-funifier-docs/knowledge/guides/java-entities.md +373 -373
  8. package/datasource-funifier-docs/knowledge/guides/java-libraries.md +330 -330
  9. package/datasource-funifier-docs/knowledge/guides/java-managers.md +509 -509
  10. package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +271 -271
  11. package/datasource-funifier-docs/knowledge/index.md +121 -121
  12. package/datasource-funifier-docs/knowledge/modules/achievement.md +46 -46
  13. package/datasource-funifier-docs/knowledge/modules/action-log.md +88 -88
  14. package/datasource-funifier-docs/knowledge/modules/action.md +80 -80
  15. package/datasource-funifier-docs/knowledge/modules/auth.md +104 -104
  16. package/datasource-funifier-docs/knowledge/modules/avatar.md +28 -28
  17. package/datasource-funifier-docs/knowledge/modules/backup.md +40 -40
  18. package/datasource-funifier-docs/knowledge/modules/challenge.md +91 -91
  19. package/datasource-funifier-docs/knowledge/modules/compact.md +40 -40
  20. package/datasource-funifier-docs/knowledge/modules/competition.md +149 -149
  21. package/datasource-funifier-docs/knowledge/modules/crossword.md +41 -41
  22. package/datasource-funifier-docs/knowledge/modules/csv-data.md +30 -30
  23. package/datasource-funifier-docs/knowledge/modules/custom-object.md +53 -53
  24. package/datasource-funifier-docs/knowledge/modules/database.md +241 -241
  25. package/datasource-funifier-docs/knowledge/modules/folder.md +111 -111
  26. package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +23 -23
  27. package/datasource-funifier-docs/knowledge/modules/lastmile.md +45 -45
  28. package/datasource-funifier-docs/knowledge/modules/leaderboard.md +98 -98
  29. package/datasource-funifier-docs/knowledge/modules/level.md +83 -83
  30. package/datasource-funifier-docs/knowledge/modules/lottery.md +112 -112
  31. package/datasource-funifier-docs/knowledge/modules/marketplace.md +27 -27
  32. package/datasource-funifier-docs/knowledge/modules/mystery.md +82 -82
  33. package/datasource-funifier-docs/knowledge/modules/notification.md +40 -40
  34. package/datasource-funifier-docs/knowledge/modules/patterns.md +1096 -1096
  35. package/datasource-funifier-docs/knowledge/modules/player.md +101 -101
  36. package/datasource-funifier-docs/knowledge/modules/point.md +67 -67
  37. package/datasource-funifier-docs/knowledge/modules/public.md +253 -253
  38. package/datasource-funifier-docs/knowledge/modules/question.md +136 -136
  39. package/datasource-funifier-docs/knowledge/modules/quiz.md +163 -163
  40. package/datasource-funifier-docs/knowledge/modules/scheduler.md +58 -58
  41. package/datasource-funifier-docs/knowledge/modules/security.md +169 -169
  42. package/datasource-funifier-docs/knowledge/modules/staging.md +28 -28
  43. package/datasource-funifier-docs/knowledge/modules/static-repo.md +41 -41
  44. package/datasource-funifier-docs/knowledge/modules/story.md +42 -42
  45. package/datasource-funifier-docs/knowledge/modules/studio-page.md +180 -180
  46. package/datasource-funifier-docs/knowledge/modules/swap.md +132 -132
  47. package/datasource-funifier-docs/knowledge/modules/team.md +75 -75
  48. package/datasource-funifier-docs/knowledge/modules/trigger.md +189 -189
  49. package/datasource-funifier-docs/knowledge/modules/upload.md +155 -155
  50. package/datasource-funifier-docs/knowledge/modules/virtual-good.md +99 -99
  51. package/datasource-funifier-docs/knowledge/modules/webhook.md +41 -41
  52. package/datasource-funifier-docs/knowledge/modules/websocket.md +41 -41
  53. package/datasource-funifier-docs/knowledge/modules/widget.md +42 -42
  54. package/datasource-funifier-docs/process-gtm-saas.md +143 -143
  55. package/datasource-funifier-docs/process-instagram.md +88 -88
  56. package/datasource-funifier-docs/process.md +1826 -1826
  57. package/datasource-funifier-docs/readme.md +132 -132
  58. package/dist/cli/config-writers.js +11 -11
  59. package/dist/mcp/bundle.js +55 -52
  60. package/package.json +70 -67
  61. package/skills/funifier-create-aggregate/SKILL.md +126 -126
  62. package/skills/funifier-create-custom-page/SKILL.md +126 -126
  63. package/skills/funifier-create-scheduler/SKILL.md +126 -126
  64. package/skills/funifier-create-trigger/SKILL.md +127 -127
@@ -1,121 +1,121 @@
1
- # Funifier Knowledge Base — Index
2
-
3
- Este ficheiro serve como **router** para localizar o módulo ou guia correto na base de conhecimento Funifier. Cada entrada indica o ficheiro, uma descrição curta e quando usar.
4
-
5
- ---
6
-
7
- ## Recursos Fundacionais da Plataforma
8
-
9
- A Funifier funciona como um **backend de aplicações**. Independentemente do tipo de projeto (gamificação, app, portal, integração), os módulos abaixo são os recursos base disponíveis para construir qualquer aplicação:
10
-
11
- | Recurso | Ficheiro | Para que serve |
12
- |---------|----------|----------------|
13
- | **Auth** | `modules/auth.md` | Login de jogadores, geração de tokens JWT, autenticação via API |
14
- | **Player** | `modules/player.md` | Cadastro e gestão de utilizadores da aplicação |
15
- | **Database** | `modules/database.md` | CRUD em qualquer coleção, queries MongoDB, aggregates |
16
- | **Custom Object** | `modules/custom-object.md` | Criar tabelas/coleções próprias (sufixo `__c`) para dados de negócio |
17
- | **Upload** | `modules/upload.md` | Upload de imagens e ficheiros (avatar, documentos, etc.) |
18
- | **Trigger** | `modules/trigger.md` | Escrever funções Java que executam no servidor quando eventos acontecem |
19
- | **Scheduler** | `modules/scheduler.md` | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
20
- | **Public Endpoint** | `modules/public.md` | Criar APIs REST customizadas acessíveis sem autenticação |
21
- | **Webhook** | `modules/webhook.md` | Enviar dados para sistemas externos quando eventos acontecem |
22
- | **Patterns** | `modules/patterns.md` | Design patterns de implementação (signup, etc.) baseados em experiência real |
23
-
24
- > **Nota para o agente:** Estes recursos estão sempre disponíveis. Ao planear qualquer funcionalidade, considere-os como ferramentas que pode combinar livremente — não são exclusivos de gamificação.
25
-
26
- ---
27
-
28
- ## Módulos Essenciais (Core)
29
-
30
- | Módulo | Ficheiro | Descrição | Quando usar |
31
- |--------|----------|-----------|-------------|
32
- | Player | `modules/player.md` | Cadastro e gestão de jogadores | Criar, listar, atualizar ou remover jogadores; gerir campos extra e imagens |
33
- | Action | `modules/action.md` | Definição de tipos de ações | Criar ações que os jogadores podem executar (ex: vender, assistir vídeo) |
34
- | Action Log | `modules/action-log.md` | Registro de ações executadas | Registrar (track) que um jogador executou uma ação; consultar histórico |
35
- | Point | `modules/point.md` | Categorias de pontos | Criar moedas/pontos (XP, coins, estrelas); configurar tipos de pontuação |
36
- | Achievement | `modules/achievement.md` | Conquistas e recompensas | Consultar pontos ganhos, desafios completados, itens comprados; entender a estrutura de recompensas |
37
- | Challenge | `modules/challenge.md` | Desafios e missões | Criar desafios com regras de ação e recompensas automáticas |
38
- | Level | `modules/level.md` | Níveis de progressão | Configurar sistema de níveis baseado em pontos acumulados |
39
- | Leaderboard | `modules/leaderboard.md` | Rankings e classificações | Criar rankings por pontos, ações ou atributos; rankings por período |
40
- | Team | `modules/team.md` | Equipes e grupos | Organizar jogadores em equipes; rankings por equipe |
41
- | Virtual Good | `modules/virtual-good.md` | Loja virtual e catálogo | Criar itens para compra com pontos; gerir catálogo e compras |
42
-
43
- ## Módulos de Engajamento
44
-
45
- | Módulo | Ficheiro | Descrição | Quando usar |
46
- |--------|----------|-----------|-------------|
47
- | Lottery | `modules/lottery.md` | Sorteios e rifas | Criar sorteios com tickets; executar sorteios automáticos ou manuais |
48
- | Competition | `modules/competition.md` | Competições entre jogadores | Criar competições temporárias com rankings e prémios para os melhores |
49
- | Mystery Box | `modules/mystery.md` | Caixas surpresa | Configurar prémios aleatórios com probabilidades definidas |
50
- | Swap | `modules/swap.md` | Troca entre jogadores | Permitir que jogadores troquem itens ou pontos entre si |
51
- | Question | `modules/question.md` | Perguntas e respostas | Criar perguntas com alternativas; registrar respostas dos jogadores |
52
- | Quiz | `modules/quiz.md` | Questionários completos | Montar questionários agrupando múltiplas perguntas; avaliar desempenho |
53
- | Crossword | `modules/crossword.md` | Palavras cruzadas | Criar jogos de palavras cruzadas como mecânica de engajamento |
54
- | Story | `modules/story.md` | Narrativas e storytelling | Criar histórias interativas com cenas e escolhas do jogador |
55
- | Avatar | `modules/avatar.md` | Avatares personalizáveis | Permitir que jogadores personalizem avatares com itens desbloqueáveis |
56
- | Last Mile | `modules/lastmile.md` | Incentivo à conclusão | Criar mecânicas que incentivam jogadores a completar tarefas pendentes |
57
-
58
- ## Módulos Técnicos e Infraestrutura
59
-
60
- | Módulo | Ficheiro | Descrição | Quando usar |
61
- |--------|----------|-----------|-------------|
62
- | Trigger | `modules/trigger.md` | Código Java em eventos | Executar lógica customizada quando eventos acontecem (before/after create, win, etc.) |
63
- | Scheduler | `modules/scheduler.md` | Tarefas agendadas | Executar código Java em intervalos regulares (cron jobs) |
64
- | Webhook | `modules/webhook.md` | Notificações HTTP externas | Enviar dados para sistemas externos quando eventos acontecem na gamificação |
65
- | Notification | `modules/notification.md` | Notificações push e in-app | Enviar notificações para jogadores via push, email ou in-app |
66
- | WebSocket | `modules/websocket.md` | Comunicação em tempo real | Receber atualizações em tempo real no frontend via WebSocket |
67
- | Public Endpoint | `modules/public.md` | APIs públicas customizadas | Criar endpoints REST customizados sem autenticação (para integrações) |
68
- | Widget | `modules/widget.md` | Componentes visuais embeddáveis | Incorporar leaderboards, perfis e outros componentes em páginas externas |
69
- | Studio Page | `modules/studio-page.md` | Páginas customizadas no Studio | Criar páginas HTML/JS dentro do painel administrativo |
70
- | KPI Formulas | `modules/kpi-formulas.md` | Fórmulas e indicadores | Criar campos calculados e KPIs derivados de dados da gamificação |
71
-
72
- ## Módulos de Dados e Armazenamento
73
-
74
- | Módulo | Ficheiro | Descrição | Quando usar |
75
- |--------|----------|-----------|-------------|
76
- | Database | `modules/database.md` | Acesso direto ao MongoDB | Operações CRUD em coleções; executar aggregates via API |
77
- | Custom Object | `modules/custom-object.md` | Coleções customizadas (`__c`) | Criar coleções de dados próprias (ex: `car__c`, `email__c`) |
78
- | CSV Data | `modules/csv-data.md` | Importação/exportação CSV | Importar jogadores ou dados em massa via CSV; exportar relatórios |
79
- | Upload | `modules/upload.md` | Upload de ficheiros | Fazer upload de imagens e ficheiros para o repositório Funifier |
80
- | Static Repo | `modules/static-repo.md` | Repositório de ficheiros estáticos | Hospedar ficheiros estáticos (HTML, CSS, JS, imagens) na plataforma |
81
-
82
- ## Módulos de Administração
83
-
84
- | Módulo | Ficheiro | Descrição | Quando usar |
85
- |--------|----------|-----------|-------------|
86
- | Auth | `modules/auth.md` | Autenticação e tokens | Gerar tokens de acesso; configurar API keys; autenticação OAuth |
87
- | Folder | `modules/folder.md` | Organização em pastas | Organizar módulos (ações, desafios, etc.) em pastas no Studio |
88
- | Backup | `modules/backup.md` | Backup e restauração | Criar backups da gamificação; restaurar configurações |
89
- | Compact | `modules/compact.md` | Compactação de dados | Compactar dados históricos para otimizar performance |
90
- | Staging | `modules/staging.md` | Ambiente de homologação | Testar configurações em ambiente separado antes de produção |
91
- | Marketplace | `modules/marketplace.md` | Templates de gamificação | Importar templates prontos do marketplace Funifier |
92
-
93
- ---
94
-
95
- ## Guias Transversais
96
-
97
- | Guia | Ficheiro | Descrição | Quando usar |
98
- |------|----------|-----------|-------------|
99
- | Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Criar relatórios, dashboards, rankings customizados; usar expressões de data Funifier |
100
- | Triggers | `guides/triggers-guide.md` | Guia completo de triggers | Referência de eventos, entidades, managers e exemplos de código Java |
101
- | Database Access | `guides/database-access.md` | Acesso ao banco de dados | Referência de acesso via API REST e via código Java (Jongo) |
102
- | Java Managers | `guides/java-managers.md` | Referência de managers Java | Métodos disponíveis em cada manager (PlayerManager, ActionManager, etc.) para uso em triggers, schedulers e public endpoints |
103
- | Java Entities | `guides/java-entities.md` | Referência de entidades Java | Campos e tipos dos objetos (Player, Achievement, ActionLog, etc.) e mapeamento para coleções MongoDB |
104
- | Java Libraries | `guides/java-libraries.md` | Bibliotecas e utilitários Java | JsonUtil, Guid, DateUtil, Unirest, EmailBuilder, Jongo — métodos e exemplos de uso |
105
-
106
- ---
107
-
108
- ## Como usar este index
109
-
110
- 1. **Identifique a necessidade** do utilizador (ex: "quero criar um ranking")
111
- 2. **Localize o módulo** na tabela acima (ex: Leaderboard)
112
- 3. **Carregue o ficheiro** correspondente (ex: `modules/leaderboard.md`)
113
- 4. **Siga o checklist** de configuração e use os exemplos de API
114
-
115
- Para consultas que envolvem **múltiplos módulos**, carregue cada ficheiro individualmente conforme necessário.
116
-
117
- Para **relatórios e queries avançadas**, consulte `guides/aggregates.md`.
118
-
119
- Para **lógica customizada com código**, consulte `guides/triggers-guide.md` e `guides/database-access.md`.
120
-
121
- Para **referência completa de recursos Java** (managers, entidades, bibliotecas), consulte `guides/java-managers.md`, `guides/java-entities.md` e `guides/java-libraries.md`.
1
+ # Funifier Knowledge Base — Index
2
+
3
+ Este ficheiro serve como **router** para localizar o módulo ou guia correto na base de conhecimento Funifier. Cada entrada indica o ficheiro, uma descrição curta e quando usar.
4
+
5
+ ---
6
+
7
+ ## Recursos Fundacionais da Plataforma
8
+
9
+ A Funifier funciona como um **backend de aplicações**. Independentemente do tipo de projeto (gamificação, app, portal, integração), os módulos abaixo são os recursos base disponíveis para construir qualquer aplicação:
10
+
11
+ | Recurso | Ficheiro | Para que serve |
12
+ |---------|----------|----------------|
13
+ | **Auth** | `modules/auth.md` | Login de jogadores, geração de tokens JWT, autenticação via API |
14
+ | **Player** | `modules/player.md` | Cadastro e gestão de utilizadores da aplicação |
15
+ | **Database** | `modules/database.md` | CRUD em qualquer coleção, queries MongoDB, aggregates |
16
+ | **Custom Object** | `modules/custom-object.md` | Criar tabelas/coleções próprias (sufixo `__c`) para dados de negócio |
17
+ | **Upload** | `modules/upload.md` | Upload de imagens e ficheiros (avatar, documentos, etc.) |
18
+ | **Trigger** | `modules/trigger.md` | Escrever funções Java que executam no servidor quando eventos acontecem |
19
+ | **Scheduler** | `modules/scheduler.md` | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
20
+ | **Public Endpoint** | `modules/public.md` | Criar APIs REST customizadas acessíveis sem autenticação |
21
+ | **Webhook** | `modules/webhook.md` | Enviar dados para sistemas externos quando eventos acontecem |
22
+ | **Patterns** | `modules/patterns.md` | Design patterns de implementação (signup, etc.) baseados em experiência real |
23
+
24
+ > **Nota para o agente:** Estes recursos estão sempre disponíveis. Ao planear qualquer funcionalidade, considere-os como ferramentas que pode combinar livremente — não são exclusivos de gamificação.
25
+
26
+ ---
27
+
28
+ ## Módulos Essenciais (Core)
29
+
30
+ | Módulo | Ficheiro | Descrição | Quando usar |
31
+ |--------|----------|-----------|-------------|
32
+ | Player | `modules/player.md` | Cadastro e gestão de jogadores | Criar, listar, atualizar ou remover jogadores; gerir campos extra e imagens |
33
+ | Action | `modules/action.md` | Definição de tipos de ações | Criar ações que os jogadores podem executar (ex: vender, assistir vídeo) |
34
+ | Action Log | `modules/action-log.md` | Registro de ações executadas | Registrar (track) que um jogador executou uma ação; consultar histórico |
35
+ | Point | `modules/point.md` | Categorias de pontos | Criar moedas/pontos (XP, coins, estrelas); configurar tipos de pontuação |
36
+ | Achievement | `modules/achievement.md` | Conquistas e recompensas | Consultar pontos ganhos, desafios completados, itens comprados; entender a estrutura de recompensas |
37
+ | Challenge | `modules/challenge.md` | Desafios e missões | Criar desafios com regras de ação e recompensas automáticas |
38
+ | Level | `modules/level.md` | Níveis de progressão | Configurar sistema de níveis baseado em pontos acumulados |
39
+ | Leaderboard | `modules/leaderboard.md` | Rankings e classificações | Criar rankings por pontos, ações ou atributos; rankings por período |
40
+ | Team | `modules/team.md` | Equipes e grupos | Organizar jogadores em equipes; rankings por equipe |
41
+ | Virtual Good | `modules/virtual-good.md` | Loja virtual e catálogo | Criar itens para compra com pontos; gerir catálogo e compras |
42
+
43
+ ## Módulos de Engajamento
44
+
45
+ | Módulo | Ficheiro | Descrição | Quando usar |
46
+ |--------|----------|-----------|-------------|
47
+ | Lottery | `modules/lottery.md` | Sorteios e rifas | Criar sorteios com tickets; executar sorteios automáticos ou manuais |
48
+ | Competition | `modules/competition.md` | Competições entre jogadores | Criar competições temporárias com rankings e prémios para os melhores |
49
+ | Mystery Box | `modules/mystery.md` | Caixas surpresa | Configurar prémios aleatórios com probabilidades definidas |
50
+ | Swap | `modules/swap.md` | Troca entre jogadores | Permitir que jogadores troquem itens ou pontos entre si |
51
+ | Question | `modules/question.md` | Perguntas e respostas | Criar perguntas com alternativas; registrar respostas dos jogadores |
52
+ | Quiz | `modules/quiz.md` | Questionários completos | Montar questionários agrupando múltiplas perguntas; avaliar desempenho |
53
+ | Crossword | `modules/crossword.md` | Palavras cruzadas | Criar jogos de palavras cruzadas como mecânica de engajamento |
54
+ | Story | `modules/story.md` | Narrativas e storytelling | Criar histórias interativas com cenas e escolhas do jogador |
55
+ | Avatar | `modules/avatar.md` | Avatares personalizáveis | Permitir que jogadores personalizem avatares com itens desbloqueáveis |
56
+ | Last Mile | `modules/lastmile.md` | Incentivo à conclusão | Criar mecânicas que incentivam jogadores a completar tarefas pendentes |
57
+
58
+ ## Módulos Técnicos e Infraestrutura
59
+
60
+ | Módulo | Ficheiro | Descrição | Quando usar |
61
+ |--------|----------|-----------|-------------|
62
+ | Trigger | `modules/trigger.md` | Código Java em eventos | Executar lógica customizada quando eventos acontecem (before/after create, win, etc.) |
63
+ | Scheduler | `modules/scheduler.md` | Tarefas agendadas | Executar código Java em intervalos regulares (cron jobs) |
64
+ | Webhook | `modules/webhook.md` | Notificações HTTP externas | Enviar dados para sistemas externos quando eventos acontecem na gamificação |
65
+ | Notification | `modules/notification.md` | Notificações push e in-app | Enviar notificações para jogadores via push, email ou in-app |
66
+ | WebSocket | `modules/websocket.md` | Comunicação em tempo real | Receber atualizações em tempo real no frontend via WebSocket |
67
+ | Public Endpoint | `modules/public.md` | APIs públicas customizadas | Criar endpoints REST customizados sem autenticação (para integrações) |
68
+ | Widget | `modules/widget.md` | Componentes visuais embeddáveis | Incorporar leaderboards, perfis e outros componentes em páginas externas |
69
+ | Studio Page | `modules/studio-page.md` | Páginas customizadas no Studio | Criar páginas HTML/JS dentro do painel administrativo |
70
+ | KPI Formulas | `modules/kpi-formulas.md` | Fórmulas e indicadores | Criar campos calculados e KPIs derivados de dados da gamificação |
71
+
72
+ ## Módulos de Dados e Armazenamento
73
+
74
+ | Módulo | Ficheiro | Descrição | Quando usar |
75
+ |--------|----------|-----------|-------------|
76
+ | Database | `modules/database.md` | Acesso direto ao MongoDB | Operações CRUD em coleções; executar aggregates via API |
77
+ | Custom Object | `modules/custom-object.md` | Coleções customizadas (`__c`) | Criar coleções de dados próprias (ex: `car__c`, `email__c`) |
78
+ | CSV Data | `modules/csv-data.md` | Importação/exportação CSV | Importar jogadores ou dados em massa via CSV; exportar relatórios |
79
+ | Upload | `modules/upload.md` | Upload de ficheiros | Fazer upload de imagens e ficheiros para o repositório Funifier |
80
+ | Static Repo | `modules/static-repo.md` | Repositório de ficheiros estáticos | Hospedar ficheiros estáticos (HTML, CSS, JS, imagens) na plataforma |
81
+
82
+ ## Módulos de Administração
83
+
84
+ | Módulo | Ficheiro | Descrição | Quando usar |
85
+ |--------|----------|-----------|-------------|
86
+ | Auth | `modules/auth.md` | Autenticação e tokens | Gerar tokens de acesso; configurar API keys; autenticação OAuth |
87
+ | Folder | `modules/folder.md` | Organização em pastas | Organizar módulos (ações, desafios, etc.) em pastas no Studio |
88
+ | Backup | `modules/backup.md` | Backup e restauração | Criar backups da gamificação; restaurar configurações |
89
+ | Compact | `modules/compact.md` | Compactação de dados | Compactar dados históricos para otimizar performance |
90
+ | Staging | `modules/staging.md` | Ambiente de homologação | Testar configurações em ambiente separado antes de produção |
91
+ | Marketplace | `modules/marketplace.md` | Templates de gamificação | Importar templates prontos do marketplace Funifier |
92
+
93
+ ---
94
+
95
+ ## Guias Transversais
96
+
97
+ | Guia | Ficheiro | Descrição | Quando usar |
98
+ |------|----------|-----------|-------------|
99
+ | Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Criar relatórios, dashboards, rankings customizados; usar expressões de data Funifier |
100
+ | Triggers | `guides/triggers-guide.md` | Guia completo de triggers | Referência de eventos, entidades, managers e exemplos de código Java |
101
+ | Database Access | `guides/database-access.md` | Acesso ao banco de dados | Referência de acesso via API REST e via código Java (Jongo) |
102
+ | Java Managers | `guides/java-managers.md` | Referência de managers Java | Métodos disponíveis em cada manager (PlayerManager, ActionManager, etc.) para uso em triggers, schedulers e public endpoints |
103
+ | Java Entities | `guides/java-entities.md` | Referência de entidades Java | Campos e tipos dos objetos (Player, Achievement, ActionLog, etc.) e mapeamento para coleções MongoDB |
104
+ | Java Libraries | `guides/java-libraries.md` | Bibliotecas e utilitários Java | JsonUtil, Guid, DateUtil, Unirest, EmailBuilder, Jongo — métodos e exemplos de uso |
105
+
106
+ ---
107
+
108
+ ## Como usar este index
109
+
110
+ 1. **Identifique a necessidade** do utilizador (ex: "quero criar um ranking")
111
+ 2. **Localize o módulo** na tabela acima (ex: Leaderboard)
112
+ 3. **Carregue o ficheiro** correspondente (ex: `modules/leaderboard.md`)
113
+ 4. **Siga o checklist** de configuração e use os exemplos de API
114
+
115
+ Para consultas que envolvem **múltiplos módulos**, carregue cada ficheiro individualmente conforme necessário.
116
+
117
+ Para **relatórios e queries avançadas**, consulte `guides/aggregates.md`.
118
+
119
+ Para **lógica customizada com código**, consulte `guides/triggers-guide.md` e `guides/database-access.md`.
120
+
121
+ Para **referência completa de recursos Java** (managers, entidades, bibliotecas), consulte `guides/java-managers.md`, `guides/java-entities.md` e `guides/java-libraries.md`.
@@ -1,46 +1,46 @@
1
- # Achievement (Conquista)
2
-
3
- **API Endpoint:** `/v3/achievement`
4
-
5
- ## O que é
6
-
7
- Registro das conquistas dos jogadores ao atingirem marcos relevantes. Todas as conquistas — como completar desafios, subir de nível, ganhar pontos ou adquirir itens — são registradas neste módulo. Ele automatiza o reconhecimento dos marcos alcançados, mas permite ajustes manuais.
8
-
9
- ## Quando usar
10
-
11
- - Para consultar conquistas dos jogadores
12
- - Para criar relatórios de desempenho
13
- - Para usar em aggregates e dashboards
14
- - Para triggers que reagem a conquistas
15
-
16
- ## Estrutura do Objeto
17
-
18
- ```json
19
- {
20
- "_id": "64a5d2",
21
- "player": "john",
22
- "total": 25.0,
23
- "type": 0,
24
- "item": "xp",
25
- "time": {"$date": "2023-07-05T20:57:33.303Z"}
26
- }
27
- ```
28
-
29
- **Tipos de Achievement (campo type):**
30
- - `0` = Point (ponto ganho)
31
- - `1` = Challenge (desafio completado)
32
- - `2` = Virtual Good (item comprado)
33
- - `3` = Level (nível atingido)
34
-
35
- ## API Endpoints
36
-
37
- ### Listar Conquistas
38
- **Método:** GET
39
- **Endpoint:** `/v3/achievement`
40
-
41
- ## Validações e Testes
42
-
43
- - [ ] Ao completar desafio, achievement tipo 1 é criado
44
- - [ ] Ao ganhar pontos, achievement tipo 0 é criado
45
- - [ ] Ao comprar item, achievement tipo 2 é criado
46
- - [ ] Ao subir de nível, achievement tipo 3 é criado
1
+ # Achievement (Conquista)
2
+
3
+ **API Endpoint:** `/v3/achievement`
4
+
5
+ ## O que é
6
+
7
+ Registro das conquistas dos jogadores ao atingirem marcos relevantes. Todas as conquistas — como completar desafios, subir de nível, ganhar pontos ou adquirir itens — são registradas neste módulo. Ele automatiza o reconhecimento dos marcos alcançados, mas permite ajustes manuais.
8
+
9
+ ## Quando usar
10
+
11
+ - Para consultar conquistas dos jogadores
12
+ - Para criar relatórios de desempenho
13
+ - Para usar em aggregates e dashboards
14
+ - Para triggers que reagem a conquistas
15
+
16
+ ## Estrutura do Objeto
17
+
18
+ ```json
19
+ {
20
+ "_id": "64a5d2",
21
+ "player": "john",
22
+ "total": 25.0,
23
+ "type": 0,
24
+ "item": "xp",
25
+ "time": {"$date": "2023-07-05T20:57:33.303Z"}
26
+ }
27
+ ```
28
+
29
+ **Tipos de Achievement (campo type):**
30
+ - `0` = Point (ponto ganho)
31
+ - `1` = Challenge (desafio completado)
32
+ - `2` = Virtual Good (item comprado)
33
+ - `3` = Level (nível atingido)
34
+
35
+ ## API Endpoints
36
+
37
+ ### Listar Conquistas
38
+ **Método:** GET
39
+ **Endpoint:** `/v3/achievement`
40
+
41
+ ## Validações e Testes
42
+
43
+ - [ ] Ao completar desafio, achievement tipo 1 é criado
44
+ - [ ] Ao ganhar pontos, achievement tipo 0 é criado
45
+ - [ ] Ao comprar item, achievement tipo 2 é criado
46
+ - [ ] Ao subir de nível, achievement tipo 3 é criado
@@ -1,88 +1,88 @@
1
- # Action Log (Registro de Ação)
2
-
3
- **API Endpoint:** `/v3/action/log`
4
-
5
- ## O que é
6
-
7
- Registro detalhado de todas as ações executadas pelos jogadores. Armazena cada ação realizada, com detalhes como quem executou, qual ação foi feita e quando ocorreu. Esse registro alimenta todos os outros módulos da plataforma.
8
-
9
- ## Quando usar
10
-
11
- - Para registrar que um jogador executou uma ação
12
- - Para alimentar desafios, rankings e recompensas
13
- - Para importar ações em lote de sistemas externos
14
- - Para rastrear comportamento dos jogadores
15
-
16
- ## Dependências
17
-
18
- - **Action**: a ação referenciada deve existir
19
- - **Player**: o jogador referenciado deve existir
20
-
21
- ## API Endpoints
22
-
23
- ### Listar ActionLogs
24
- **Método:** GET
25
- **Endpoint:** `/v3/action/log`
26
-
27
- **Exemplo de Resposta:**
28
- ```json
29
- [
30
- {
31
- "_id": "6509e4e28325771ffaa4506e",
32
- "actionId": "sell",
33
- "userId": "jerry",
34
- "time": 1695147234712,
35
- "attributes": {
36
- "product": "bike",
37
- "price": 1200
38
- }
39
- }
40
- ]
41
- ```
42
-
43
- ### Registrar ActionLog
44
- **Método:** POST
45
- **Endpoint:** `/v3/action/log`
46
-
47
- **Exemplo de Body:**
48
- ```json
49
- {
50
- "actionId": "sell",
51
- "userId": "jerry",
52
- "attributes": {
53
- "product": "bike",
54
- "price": 1200
55
- }
56
- }
57
- ```
58
-
59
- ### Registrar Múltiplos ActionLogs
60
- **Método:** POST
61
- **Endpoint:** `/v3/action/log/bulk`
62
-
63
- **Exemplo de Body:**
64
- ```json
65
- [
66
- {
67
- "actionId": "sell",
68
- "userId": "jerry",
69
- "attributes": { "product": "bike", "price": 1200 }
70
- },
71
- {
72
- "actionId": "sell",
73
- "userId": "tom",
74
- "attributes": { "product": "book", "price": 25 }
75
- }
76
- ]
77
- ```
78
-
79
- ### Excluir ActionLog
80
- **Método:** DELETE
81
- **Endpoint:** `/v3/action/log/:id`
82
-
83
- ## Validações e Testes
84
-
85
- - [ ] ActionLog aparece na lista com dados corretos
86
- - [ ] Ao registrar action log, desafios relacionados progridem
87
- - [ ] Bulk insert registra múltiplas ações corretamente
88
- - [ ] Atributos são armazenados conforme definido na ação
1
+ # Action Log (Registro de Ação)
2
+
3
+ **API Endpoint:** `/v3/action/log`
4
+
5
+ ## O que é
6
+
7
+ Registro detalhado de todas as ações executadas pelos jogadores. Armazena cada ação realizada, com detalhes como quem executou, qual ação foi feita e quando ocorreu. Esse registro alimenta todos os outros módulos da plataforma.
8
+
9
+ ## Quando usar
10
+
11
+ - Para registrar que um jogador executou uma ação
12
+ - Para alimentar desafios, rankings e recompensas
13
+ - Para importar ações em lote de sistemas externos
14
+ - Para rastrear comportamento dos jogadores
15
+
16
+ ## Dependências
17
+
18
+ - **Action**: a ação referenciada deve existir
19
+ - **Player**: o jogador referenciado deve existir
20
+
21
+ ## API Endpoints
22
+
23
+ ### Listar ActionLogs
24
+ **Método:** GET
25
+ **Endpoint:** `/v3/action/log`
26
+
27
+ **Exemplo de Resposta:**
28
+ ```json
29
+ [
30
+ {
31
+ "_id": "6509e4e28325771ffaa4506e",
32
+ "actionId": "sell",
33
+ "userId": "jerry",
34
+ "time": 1695147234712,
35
+ "attributes": {
36
+ "product": "bike",
37
+ "price": 1200
38
+ }
39
+ }
40
+ ]
41
+ ```
42
+
43
+ ### Registrar ActionLog
44
+ **Método:** POST
45
+ **Endpoint:** `/v3/action/log`
46
+
47
+ **Exemplo de Body:**
48
+ ```json
49
+ {
50
+ "actionId": "sell",
51
+ "userId": "jerry",
52
+ "attributes": {
53
+ "product": "bike",
54
+ "price": 1200
55
+ }
56
+ }
57
+ ```
58
+
59
+ ### Registrar Múltiplos ActionLogs
60
+ **Método:** POST
61
+ **Endpoint:** `/v3/action/log/bulk`
62
+
63
+ **Exemplo de Body:**
64
+ ```json
65
+ [
66
+ {
67
+ "actionId": "sell",
68
+ "userId": "jerry",
69
+ "attributes": { "product": "bike", "price": 1200 }
70
+ },
71
+ {
72
+ "actionId": "sell",
73
+ "userId": "tom",
74
+ "attributes": { "product": "book", "price": 25 }
75
+ }
76
+ ]
77
+ ```
78
+
79
+ ### Excluir ActionLog
80
+ **Método:** DELETE
81
+ **Endpoint:** `/v3/action/log/:id`
82
+
83
+ ## Validações e Testes
84
+
85
+ - [ ] ActionLog aparece na lista com dados corretos
86
+ - [ ] Ao registrar action log, desafios relacionados progridem
87
+ - [ ] Bulk insert registra múltiplas ações corretamente
88
+ - [ ] Atributos são armazenados conforme definido na ação