funifier-mcp 0.1.0 → 0.2.0

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 (111) hide show
  1. package/README.md +182 -351
  2. package/datasource-funifier-docs/knowledge/guides/aggregates.md +152 -0
  3. package/datasource-funifier-docs/knowledge/guides/database-access.md +132 -0
  4. package/datasource-funifier-docs/knowledge/guides/java-entities.md +373 -0
  5. package/datasource-funifier-docs/knowledge/guides/java-libraries.md +330 -0
  6. package/datasource-funifier-docs/knowledge/guides/java-managers.md +509 -0
  7. package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +271 -0
  8. package/datasource-funifier-docs/knowledge/index.md +121 -0
  9. package/datasource-funifier-docs/knowledge/modules/achievement.md +46 -0
  10. package/datasource-funifier-docs/knowledge/modules/action-log.md +88 -0
  11. package/datasource-funifier-docs/knowledge/modules/action.md +80 -0
  12. package/datasource-funifier-docs/knowledge/modules/auth.md +104 -0
  13. package/datasource-funifier-docs/knowledge/modules/avatar.md +28 -0
  14. package/datasource-funifier-docs/knowledge/modules/backup.md +40 -0
  15. package/datasource-funifier-docs/knowledge/modules/challenge.md +91 -0
  16. package/datasource-funifier-docs/knowledge/modules/compact.md +40 -0
  17. package/datasource-funifier-docs/knowledge/modules/competition.md +149 -0
  18. package/datasource-funifier-docs/knowledge/modules/crossword.md +41 -0
  19. package/datasource-funifier-docs/knowledge/modules/csv-data.md +30 -0
  20. package/datasource-funifier-docs/knowledge/modules/custom-object.md +53 -0
  21. package/datasource-funifier-docs/knowledge/modules/database.md +241 -0
  22. package/datasource-funifier-docs/knowledge/modules/folder.md +111 -0
  23. package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +23 -0
  24. package/datasource-funifier-docs/knowledge/modules/lastmile.md +45 -0
  25. package/datasource-funifier-docs/knowledge/modules/leaderboard.md +98 -0
  26. package/datasource-funifier-docs/knowledge/modules/level.md +83 -0
  27. package/datasource-funifier-docs/knowledge/modules/lottery.md +112 -0
  28. package/datasource-funifier-docs/knowledge/modules/marketplace.md +27 -0
  29. package/datasource-funifier-docs/knowledge/modules/mystery.md +82 -0
  30. package/datasource-funifier-docs/knowledge/modules/notification.md +40 -0
  31. package/datasource-funifier-docs/knowledge/modules/patterns.md +1096 -0
  32. package/datasource-funifier-docs/knowledge/modules/player.md +101 -0
  33. package/datasource-funifier-docs/knowledge/modules/point.md +67 -0
  34. package/datasource-funifier-docs/knowledge/modules/public.md +253 -0
  35. package/datasource-funifier-docs/knowledge/modules/question.md +136 -0
  36. package/datasource-funifier-docs/knowledge/modules/quiz.md +163 -0
  37. package/datasource-funifier-docs/knowledge/modules/scheduler.md +58 -0
  38. package/datasource-funifier-docs/knowledge/modules/security.md +169 -0
  39. package/datasource-funifier-docs/knowledge/modules/staging.md +28 -0
  40. package/datasource-funifier-docs/knowledge/modules/static-repo.md +41 -0
  41. package/datasource-funifier-docs/knowledge/modules/story.md +42 -0
  42. package/datasource-funifier-docs/knowledge/modules/studio-page.md +180 -0
  43. package/datasource-funifier-docs/knowledge/modules/swap.md +132 -0
  44. package/datasource-funifier-docs/knowledge/modules/team.md +75 -0
  45. package/datasource-funifier-docs/knowledge/modules/trigger.md +189 -0
  46. package/datasource-funifier-docs/knowledge/modules/upload.md +155 -0
  47. package/datasource-funifier-docs/knowledge/modules/virtual-good.md +99 -0
  48. package/datasource-funifier-docs/knowledge/modules/webhook.md +41 -0
  49. package/datasource-funifier-docs/knowledge/modules/websocket.md +41 -0
  50. package/datasource-funifier-docs/knowledge/modules/widget.md +42 -0
  51. package/datasource-funifier-docs/process-gtm-saas.md +143 -0
  52. package/datasource-funifier-docs/process-instagram.md +88 -0
  53. package/datasource-funifier-docs/process.md +1826 -0
  54. package/datasource-funifier-docs/readme.md +132 -0
  55. package/dist/cli/config-writers.d.ts +15 -0
  56. package/dist/cli/config-writers.d.ts.map +1 -0
  57. package/dist/cli/config-writers.js +55 -0
  58. package/dist/cli/config-writers.js.map +1 -0
  59. package/dist/cli/config-writers.test.d.ts +2 -0
  60. package/dist/cli/config-writers.test.d.ts.map +1 -0
  61. package/dist/cli/config-writers.test.js +55 -0
  62. package/dist/cli/config-writers.test.js.map +1 -0
  63. package/dist/cli/copy.d.ts +6 -0
  64. package/dist/cli/copy.d.ts.map +1 -0
  65. package/dist/cli/copy.js +63 -0
  66. package/dist/cli/copy.js.map +1 -0
  67. package/dist/cli/copy.test.d.ts +2 -0
  68. package/dist/cli/copy.test.d.ts.map +1 -0
  69. package/dist/cli/copy.test.js +94 -0
  70. package/dist/cli/copy.test.js.map +1 -0
  71. package/dist/cli/init.d.ts +2 -0
  72. package/dist/cli/init.d.ts.map +1 -0
  73. package/dist/cli/init.js +167 -0
  74. package/dist/cli/init.js.map +1 -0
  75. package/dist/cli/paths.d.ts +7 -0
  76. package/dist/cli/paths.d.ts.map +1 -0
  77. package/dist/cli/paths.js +62 -0
  78. package/dist/cli/paths.js.map +1 -0
  79. package/dist/cli/paths.test.d.ts +2 -0
  80. package/dist/cli/paths.test.d.ts.map +1 -0
  81. package/dist/cli/paths.test.js +50 -0
  82. package/dist/cli/paths.test.js.map +1 -0
  83. package/dist/cli/platforms.d.ts +22 -0
  84. package/dist/cli/platforms.d.ts.map +1 -0
  85. package/dist/cli/platforms.js +50 -0
  86. package/dist/cli/platforms.js.map +1 -0
  87. package/dist/cli/prompts.d.ts +7 -0
  88. package/dist/cli/prompts.d.ts.map +1 -0
  89. package/dist/cli/prompts.js +49 -0
  90. package/dist/cli/prompts.js.map +1 -0
  91. package/dist/index.js +1 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/mcp/bundle.js +94 -49
  94. package/dist/mcp/index.js +18 -1
  95. package/dist/mcp/index.js.map +1 -1
  96. package/package.json +4 -2
  97. package/skills/funifier-create-action/SKILL.md +86 -86
  98. package/skills/funifier-create-aggregate/SKILL.md +39 -0
  99. package/skills/funifier-create-challenge/SKILL.md +87 -87
  100. package/skills/funifier-create-custom-page/SKILL.md +39 -0
  101. package/skills/funifier-create-leaderboard/SKILL.md +87 -87
  102. package/skills/funifier-create-level/SKILL.md +86 -86
  103. package/skills/funifier-create-point/SKILL.md +86 -86
  104. package/skills/funifier-create-quiz/SKILL.md +86 -86
  105. package/skills/funifier-create-scheduler/SKILL.md +39 -0
  106. package/skills/funifier-create-trigger/SKILL.md +39 -0
  107. package/skills/funifier-create-virtual-good/SKILL.md +86 -86
  108. package/skills/funifier-debug/SKILL.md +90 -90
  109. package/skills/funifier-help/SKILL.md +85 -85
  110. package/skills/funifier-implement-frontend/SKILL.md +89 -89
  111. package/skills/funifier-index/SKILL.md +50 -50
@@ -0,0 +1,104 @@
1
+ # Auth (Autenticação)
2
+
3
+ **Acesso Studio:** `/studio/auth`
4
+ **API Endpoint:** `/v3/auth`
5
+
6
+ ## O que é
7
+
8
+ Gerenciamento de autenticação e critérios básicos de segurança. Permite configurar como será o processo de login dos jogadores, definindo exigência de senha, auto-criação de usuários, geração de tokens de acesso (incluindo tempo de expiração e revalidação). Também permite criar rotinas personalizadas de autenticação (Auth Module) para SSO, validação externa e logs de login.
9
+
10
+ ## Quando usar
11
+
12
+ - Para configurar login de jogadores
13
+ - Para gerar tokens de acesso
14
+ - Para implementar SSO com sistemas corporativos
15
+ - Para criar validações customizadas de autenticação
16
+
17
+ ## Checklist de Configuração no Studio
18
+
19
+ - [ ] Definir se senha é obrigatória
20
+ - [ ] Configurar auto-criação de usuários
21
+ - [ ] Definir tempo de expiração do token
22
+ - [ ] Configurar módulo de autenticação customizado (se necessário)
23
+
24
+ ## API Endpoints
25
+
26
+ ### Autenticar Jogador
27
+ **Método:** POST
28
+ **Endpoint:** `/v3/auth/token`
29
+
30
+ **Exemplo de Body:**
31
+ ```json
32
+ {
33
+ "apiKey": "YOUR_API_KEY",
34
+ "grant_type": "password",
35
+ "username": "tom",
36
+ "password": "123"
37
+ }
38
+ ```
39
+
40
+ **Exemplo de Resposta:**
41
+ ```json
42
+ {
43
+ "access_token": "eyJhbGciOiJIUzUxMiIsImNhbGciOiJHWklQIn0...",
44
+ "token_type": "Bearer",
45
+ "expires_in": 1695751444626
46
+ }
47
+ ```
48
+
49
+ ### Listar Módulos de Autenticação
50
+ **Método:** GET
51
+ **Endpoint:** `/v3/auth/module`
52
+
53
+ ### Criar Módulo de Autenticação
54
+ **Método:** POST
55
+ **Endpoint:** `/v3/auth/module`
56
+
57
+ ## Roles e Permissões (Scopes)
58
+
59
+ As permissões do token de jogador são controladas por **Roles** configuradas em `Studio > Security > Roles`. Cada Role define:
60
+
61
+ - **Role:** nome da role (ex: `player`) — atribuída automaticamente ao jogador no login
62
+ - **Timeout:** tempo de expiração do token (ex: `1d` = 1 dia)
63
+ - **Scope:** lista de permissões separadas por vírgula
64
+
65
+ ### Scopes disponíveis
66
+
67
+ | Scope | Descrição |
68
+ |-------|-----------|
69
+ | `read_all` | Leitura em todos os endpoints |
70
+ | `write_all` | Escrita em todos os endpoints |
71
+ | `delete_all` | Exclusão em todos os endpoints |
72
+ | `write_player` | Escrita no endpoint `/v3/player` |
73
+ | `write_actionlog` | Escrita no endpoint `/v3/action_log` |
74
+ | `write_upload` | Escrita no endpoint `/v3/upload` |
75
+ | `write_database_<collection>` | Escrita em uma coleção específica do database (ex: `write_database_task__c`) |
76
+ | `delete_database_<collection>` | Exclusão em uma coleção específica do database |
77
+ | `database` | **⚠️ OBRIGATÓRIO** para acessar o endpoint `/v3/database` — sem esta palavra no scope, o endpoint retorna dados vazios silenciosamente (sem erro) |
78
+
79
+ ### ⚠️ Nota importante sobre o endpoint Database
80
+
81
+ O endpoint `/v3/database` exige que a palavra **`database`** esteja presente no scope da role, **independentemente** de `write_all` ou `read_all` já estarem configurados. Sem ela, as operações de escrita retornam `201` mas **não persistem os dados**, e as operações de leitura retornam **corpo vazio** — tudo sem mensagem de erro.
82
+
83
+ ### Exemplo de scope completo para apps com database
84
+
85
+ ```
86
+ read_all, write_all, delete_all, database
87
+ ```
88
+
89
+ ### Configuração no Studio
90
+
91
+ 1. Acesse `Studio > Security`
92
+ 2. Na seção **Roles**, clique no botão `+` para criar uma nova role
93
+ 3. Defina: Role = `player`, Timeout = `1d`, Scope = `read_all, write_all, delete_all, database`
94
+ 4. Clique em **Salvar**
95
+ 5. O jogador precisa **fazer login novamente** para obter um token com as novas permissões
96
+
97
+ ## Validações e Testes
98
+
99
+ - [ ] Login retorna token válido
100
+ - [ ] Token expira no tempo configurado
101
+ - [ ] Jogador inválido recebe erro apropriado
102
+ - [ ] SSO funciona (se configurado)
103
+ - [ ] Role "player" está configurada com scope adequado
104
+ - [ ] Token do jogador tem permissão para os endpoints necessários
@@ -0,0 +1,28 @@
1
+ # Avatar (Avatar)
2
+
3
+ ## O que é
4
+
5
+ Criação e customização de avatares para os jogadores. Permite aos jogadores criarem avatares personalizados, desbloqueando acessórios e itens de acordo com o desempenho na gamificação ou por compras na loja. Pode ser usado em ambientes 2D ou 3D.
6
+
7
+ ## Quando usar
8
+
9
+ - Para personalização visual dos jogadores
10
+ - Para criar senso de identidade e pertencimento
11
+ - Para vincular recompensas a itens visuais
12
+ - Para ambientes virtuais com representação do jogador
13
+
14
+ ## Dependências
15
+
16
+ - **Virtual Good** (opcional): acessórios podem ser vendidos na loja
17
+
18
+ ## Checklist de Configuração
19
+
20
+ - [ ] Definir tipos de avatar disponíveis
21
+ - [ ] Criar acessórios e itens desbloqueáveis
22
+ - [ ] Vincular itens a desafios ou loja virtual
23
+
24
+ ## Validações e Testes
25
+
26
+ - [ ] Avatar padrão é exibido para novos jogadores
27
+ - [ ] Acessórios desbloqueados aparecem disponíveis
28
+ - [ ] Personalização do avatar é salva corretamente
@@ -0,0 +1,40 @@
1
+ # Backup (Backup)
2
+
3
+ **Acesso Studio:** `/studio/backup`
4
+ **API Endpoint:** `/v3/backup`
5
+
6
+ ## O que é
7
+
8
+ Backup e remoção controlada de dados antigos. Permite criar rotinas automáticas de backup de registros importantes, além de remover dados antigos de maneira controlada para manter a performance da plataforma.
9
+
10
+ ## Quando usar
11
+
12
+ - Para fazer backup de logs antigos antes de atualizações
13
+ - Para remover registros históricos e otimizar consultas
14
+ - Para manter performance em grandes volumes de dados
15
+
16
+ ## Checklist de Configuração no Studio
17
+
18
+ - [ ] Definir quais coleções serão backupeadas
19
+ - [ ] Configurar frequência do backup
20
+ - [ ] Definir critério de remoção de dados antigos
21
+
22
+ ## API Endpoints
23
+
24
+ ### Listar Backups
25
+ **Método:** GET
26
+ **Endpoint:** `/v3/backup`
27
+
28
+ ### Criar Backup
29
+ **Método:** POST
30
+ **Endpoint:** `/v3/backup`
31
+
32
+ ### Deletar Backup
33
+ **Método:** DELETE
34
+ **Endpoint:** `/v3/backup/:id`
35
+
36
+ ## Validações e Testes
37
+
38
+ - [ ] Backup é executado com sucesso
39
+ - [ ] Dados antigos são removidos conforme critério
40
+ - [ ] Performance melhora após limpeza
@@ -0,0 +1,91 @@
1
+ # Challenge (Desafio)
2
+
3
+ **Acesso Studio:** `/studio/challenge`
4
+ **API Endpoint:** `/v3/challenge`
5
+
6
+ ## O que é
7
+
8
+ Configuração de desafios a serem completados por jogadores ou equipes. Permite criar desafios personalizados, definindo ações que o jogador precisa realizar e recompensas que receberá. Os desafios podem variar de simples tarefas a missões complexas compostas por múltiplas ações ou etapas.
9
+
10
+ ## Quando usar
11
+
12
+ - Em quase todo projeto de gamificação
13
+ - Para definir missões e objetivos para jogadores
14
+ - Para vincular ações a recompensas (pontos, itens, etc.)
15
+ - Para criar progressão e senso de conquista
16
+
17
+ ## Dependências
18
+
19
+ - **Point**: tipos de ponto devem existir antes de criar challenges que os recompensam
20
+ - **Action**: ações devem existir antes de criar challenges que as referenciam
21
+
22
+ ## Checklist de Configuração no Studio
23
+
24
+ - [ ] Definir título e descrição do desafio
25
+ - [ ] Definir regras (rules): qual ação, quantas vezes, filtros por atributo
26
+ - [ ] Definir recompensas (points): tipo de ponto e quantidade
27
+ - [ ] Definir frequência (uma vez, diário, semanal, ilimitado)
28
+ - [ ] Definir desbloqueio (quando fica disponível)
29
+ - [ ] Configurar notificações de conclusão
30
+ - [ ] Vincular técnicas de jogo (techniques)
31
+
32
+ ## API Endpoints
33
+
34
+ ### Listar Desafios
35
+ **Método:** GET
36
+ **Endpoint:** `/v3/challenge`
37
+
38
+ **Exemplo de Resposta:**
39
+ ```json
40
+ [
41
+ {
42
+ "challenge": "Sell 10 books",
43
+ "description": "Sell 10 books to earn 25 xp and 5 coins",
44
+ "rules": [
45
+ {
46
+ "actionId": "sell",
47
+ "filters": [
48
+ { "value": "book", "operator": 1, "param": "product" }
49
+ ],
50
+ "total": 10
51
+ }
52
+ ],
53
+ "points": [
54
+ { "total": 25, "category": "xp" },
55
+ { "total": 5, "category": "coin" }
56
+ ],
57
+ "_id": "DTkhJHV"
58
+ }
59
+ ]
60
+ ```
61
+
62
+ ### Criar Desafio
63
+ **Método:** POST
64
+ **Endpoint:** `/v3/challenge`
65
+
66
+ **Exemplo de Body:**
67
+ ```json
68
+ {
69
+ "challenge": "Watch Video",
70
+ "description": "Complete this challenge by watching a video, and earn 10 xp",
71
+ "rules": [
72
+ { "actionId": "watch_video", "operator": 5, "total": 0 }
73
+ ],
74
+ "points": [
75
+ { "total": 10.0, "category": "xp", "operation": 0 }
76
+ ],
77
+ "techniques": ["GT35"]
78
+ }
79
+ ```
80
+
81
+ ### Excluir Desafio
82
+ **Método:** DELETE
83
+ **Endpoint:** `/v3/challenge/:id`
84
+
85
+ ## Validações e Testes
86
+
87
+ - [ ] Desafio aparece na lista GET /v3/challenge
88
+ - [ ] Ações referenciadas nas rules existem (GET /v3/action)
89
+ - [ ] Pontos referenciados nas recompensas existem (GET /v3/point)
90
+ - [ ] Ao registrar ação (POST /v3/action/log), o desafio progride corretamente
91
+ - [ ] Ao completar o desafio, jogador recebe os pontos definidos
@@ -0,0 +1,40 @@
1
+ # Compact (Compactação)
2
+
3
+ **Acesso Studio:** `/studio/compact`
4
+ **API Endpoint:** `/v3/compact`
5
+
6
+ ## O que é
7
+
8
+ Compactação e otimização do armazenamento de dados. Configura rotinas para agrupar registros e reduzir o espaço ocupado por dados históricos, como achievements ou logs, melhorando o tempo de resposta das consultas e a performance geral.
9
+
10
+ ## Quando usar
11
+
12
+ - Para compactar registros de achievements acumulados
13
+ - Para otimizar coleções de acesso rápido
14
+ - Para reduzir volume de dados históricos
15
+
16
+ ## Checklist de Configuração no Studio
17
+
18
+ - [ ] Definir coleções a compactar
19
+ - [ ] Configurar critérios de agrupamento
20
+ - [ ] Testar impacto na performance
21
+
22
+ ## API Endpoints
23
+
24
+ ### Listar Compactações
25
+ **Método:** GET
26
+ **Endpoint:** `/v3/compact`
27
+
28
+ ### Criar Compactação
29
+ **Método:** POST
30
+ **Endpoint:** `/v3/compact`
31
+
32
+ ### Deletar Compactação
33
+ **Método:** DELETE
34
+ **Endpoint:** `/v3/compact/:id`
35
+
36
+ ## Validações e Testes
37
+
38
+ - [ ] Compactação é executada sem perda de dados
39
+ - [ ] Volume de dados é reduzido
40
+ - [ ] Consultas mantêm resultados corretos após compactação
@@ -0,0 +1,149 @@
1
+ # Competition (Competição)
2
+
3
+ **Acesso Studio:** `/studio/competition`
4
+ **API Endpoint:** `/v3/competition`
5
+
6
+ ## O que é
7
+
8
+ Configuração de disputas diretas entre jogadores ou equipes. Permite criar competições com regras próprias, prêmios para diferentes posições e critérios de apuração customizáveis. Geralmente, o jogador ou equipe precisa se inscrever para participar.
9
+
10
+ ## Quando usar
11
+
12
+ - Para criar disputas temporais (ex: competição de vendas mensal)
13
+ - Para premiar os melhores colocados em um período
14
+ - Para engajar equipes com competições internas
15
+
16
+ ## Dependências
17
+
18
+ - **Point** ou **Action**: métrica de avaliação deve existir
19
+ - **Player** ou **Team**: participantes devem existir
20
+
21
+ ## Checklist de Configuração no Studio
22
+
23
+ - [ ] Definir título e descrição
24
+ - [ ] Definir período de apuração (period.expression)
25
+ - [ ] Definir número máximo de vencedores (maxWinners)
26
+ - [ ] Definir número máximo de participantes (maxPlayers)
27
+ - [ ] Definir critério de ranking (operation: tipo, item, ordenação)
28
+ - [ ] Definir custo de inscrição (requires) se aplicável
29
+ - [ ] Definir recompensas por posição (rewards com position_start/position_ends)
30
+ - [ ] Definir se é competição de equipes (teamCompetition)
31
+ - [ ] Ativar competição (active: true)
32
+ - [ ] Definir execução automática (autoExecute)
33
+
34
+ ## API Endpoints
35
+
36
+ ### Listar Competições
37
+ **Método:** GET
38
+ **Endpoint:** `/v3/competition`
39
+
40
+ ### Criar Competição
41
+ **Método:** POST
42
+ **Endpoint:** `/v3/competition`
43
+
44
+ **Exemplo de Body:**
45
+ ```json
46
+ {
47
+ "title": "Sales Race",
48
+ "description": "Leads the competition who has the highest amount of closed sales in the month.",
49
+ "period": {
50
+ "expression": "-0M-;+1M+"
51
+ },
52
+ "maxWinners": 1,
53
+ "maxPlayers": 100,
54
+ "minScore": 0,
55
+ "operation": {
56
+ "type": 1,
57
+ "achievement_type": 0,
58
+ "item": "sell",
59
+ "filters": [],
60
+ "sort": -1,
61
+ "sub": false
62
+ },
63
+ "requires": [
64
+ {
65
+ "total": 10,
66
+ "type": 0,
67
+ "item": "coin",
68
+ "operation": 1,
69
+ "extra": {},
70
+ "restrict": false,
71
+ "perPlayer": false
72
+ }
73
+ ],
74
+ "rewards": [
75
+ {
76
+ "total": 100,
77
+ "type": 0,
78
+ "item": "xp",
79
+ "operation": 0,
80
+ "extra": {
81
+ "position_start": 1,
82
+ "position_ends": 3
83
+ },
84
+ "restrict": false,
85
+ "perPlayer": false
86
+ }
87
+ ],
88
+ "notifications": [],
89
+ "active": true,
90
+ "teamCompetition": false,
91
+ "autoExecute": true,
92
+ "extra": {},
93
+ "techniques": ["GT26"],
94
+ "_id": "race"
95
+ }
96
+ ```
97
+
98
+ ### Deletar Competição
99
+ **Método:** DELETE
100
+ **Endpoint:** `/v3/competition/:id`
101
+
102
+ ### Listar Participações (Joins)
103
+ **Método:** GET
104
+ **Endpoint:** `/v3/competition/join?competition=:id`
105
+
106
+ ### Criar Participação (Join)
107
+ **Método:** POST
108
+ **Endpoint:** `/v3/competition/join`
109
+
110
+ **Exemplo de Body:**
111
+ ```json
112
+ {
113
+ "competition": "race",
114
+ "player": "jerry"
115
+ }
116
+ ```
117
+
118
+ ### Deletar Participação
119
+ **Método:** DELETE
120
+ **Endpoint:** `/v3/competition/join`
121
+
122
+ **Exemplo de Body:**
123
+ ```json
124
+ {
125
+ "competition": "race",
126
+ "player": "tom"
127
+ }
128
+ ```
129
+
130
+ ### Listar Líderes da Competição
131
+ **Método:** POST
132
+ **Endpoint:** `/v3/competition/leader/aggregate?id=:id`
133
+
134
+ ### Executar Competição
135
+ **Método:** GET
136
+ **Endpoint:** `/v3/competition/:id/execute`
137
+ **Descrição:** Finaliza a competição, calcula resultados e premia os vencedores.
138
+
139
+ ### Reverter Execução
140
+ **Método:** DELETE
141
+ **Endpoint:** `/v3/competition/:id/execute`
142
+
143
+ ## Validações e Testes
144
+
145
+ - [ ] Competição aparece na lista GET /v3/competition
146
+ - [ ] Jogador consegue se inscrever (join)
147
+ - [ ] Lista de líderes retorna dados ordenados
148
+ - [ ] Ao executar, vencedores recebem recompensas
149
+ - [ ] Custo de inscrição é debitado corretamente
@@ -0,0 +1,41 @@
1
+ # Crossword (Palavras Cruzadas)
2
+
3
+ **Acesso Studio:** `/studio/crossword`
4
+ **API Endpoint:** `/v3/crossword`
5
+
6
+ ## O que é
7
+
8
+ Configuração de jogos de palavras cruzadas. Permite criar jogos customizados, com dicas, posições e temas específicos para diferentes objetivos educacionais ou promocionais.
9
+
10
+ ## Quando usar
11
+
12
+ - Para onboarding de funcionários com termos técnicos
13
+ - Para campanhas de marketing temáticas
14
+ - Para jogos educacionais
15
+ - Para engajamento com vocabulário específico
16
+
17
+ ## Checklist de Configuração no Studio
18
+
19
+ - [ ] Definir título do jogo
20
+ - [ ] Criar palavras com dicas e posições
21
+ - [ ] Configurar tema visual
22
+
23
+ ## API Endpoints
24
+
25
+ ### Listar Crosswords
26
+ **Método:** GET
27
+ **Endpoint:** `/v3/crossword`
28
+
29
+ ### Criar Crossword
30
+ **Método:** POST
31
+ **Endpoint:** `/v3/crossword`
32
+
33
+ ### Deletar Crossword
34
+ **Método:** DELETE
35
+ **Endpoint:** `/v3/crossword/:id`
36
+
37
+ ## Validações e Testes
38
+
39
+ - [ ] Crossword aparece na lista
40
+ - [ ] Palavras e dicas estão corretas
41
+ - [ ] Jogador consegue interagir com o jogo
@@ -0,0 +1,30 @@
1
+ # CSV Data (Dados CSV)
2
+
3
+ **API Endpoint:** `/v3/csv`
4
+
5
+ ## O que é
6
+
7
+ Importação e exportação de dados no formato CSV. Permite importar ou exportar dados de forma fácil e segura, seja via upload manual ou FTP. Suporta arquivos criptografados para segurança no trânsito das informações.
8
+
9
+ ## Quando usar
10
+
11
+ - Para importar listas de jogadores em massa
12
+ - Para exportar relatórios de desempenho
13
+ - Para migrar dados de sistemas externos
14
+ - Para importação segura via FTP com criptografia
15
+
16
+ ## API Endpoints
17
+
18
+ ### Importar CSV
19
+ **Método:** POST
20
+ **Endpoint:** `/v3/csv`
21
+
22
+ ### Exportar CSV
23
+ **Método:** GET
24
+ **Endpoint:** `/v3/csv`
25
+
26
+ ## Validações e Testes
27
+
28
+ - [ ] Importação processa arquivo corretamente
29
+ - [ ] Dados importados aparecem nas coleções corretas
30
+ - [ ] Exportação gera arquivo CSV válido
@@ -0,0 +1,53 @@
1
+ # Custom Object (Objeto Customizado)
2
+
3
+ ## O que é
4
+
5
+ Criação de objetos personalizados para necessidades específicas. Permite criar e gerenciar coleções personalizadas no banco de dados (sufixo `__c`), que podem ser acessadas via API, triggers, schedulers e páginas personalizadas. Ideal para quando os módulos padrão não atendem a todos os requisitos do projeto.
6
+
7
+ ## Quando usar
8
+
9
+ - Para cadastrar entidades específicas do negócio (produtos, imóveis, etc.)
10
+ - Para criar listas customizadas (pontos turísticos, categorias, etc.)
11
+ - Para armazenar dados que não se encaixam nos módulos padrão
12
+
13
+ ## API Endpoints
14
+
15
+ Objetos customizados são acessados via o módulo Database:
16
+
17
+ ### Listar Objetos
18
+ **Método:** GET
19
+ **Endpoint:** `/v3/database/<nome>__c`
20
+
21
+ ### Criar Objeto
22
+ **Método:** POST
23
+ **Endpoint:** `/v3/database/<nome>__c`
24
+
25
+ **Exemplo (coleção car__c):**
26
+ ```json
27
+ {
28
+ "_id": "car001",
29
+ "name": "Civic",
30
+ "brand": "Honda",
31
+ "price": 50000
32
+ }
33
+ ```
34
+
35
+ ### Atualizar Objeto
36
+ **Método:** PUT
37
+ **Endpoint:** `/v3/database/<nome>__c`
38
+
39
+ ### Excluir Objeto
40
+ **Método:** DELETE
41
+ **Endpoint:** `/v3/database/<nome>__c?q=_id:'car001'`
42
+
43
+ ## Boas Práticas
44
+
45
+ - Sempre usar sufixo `__c` no nome da coleção
46
+ - Definir `_id` único para cada objeto
47
+ - Criar índices para campos usados em consultas frequentes
48
+
49
+ ## Validações e Testes
50
+
51
+ - [ ] Coleção customizada aparece em GET /v3/database/collections
52
+ - [ ] CRUD funciona corretamente
53
+ - [ ] Triggers com entity `<nome>__c` funcionam