funifier-mcp 0.2.0 → 0.2.4

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 +82 -77
  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,83 +1,83 @@
1
- # Level (Nível)
2
-
3
- **Acesso Studio:** `/studio/level`
4
- **API Endpoint:** `/v3/level`
5
-
6
- ## O que é
7
-
8
- Sistema de progressão por níveis. Permite definir a progressão dos jogadores com base em pontos acumulados ou outros critérios, atribuindo títulos ou benefícios a cada nível. Pode-se exigir desafios específicos para desbloquear certos níveis.
9
-
10
- ## Quando usar
11
-
12
- - Para criar senso de progressão e conquista
13
- - Para desbloquear funcionalidades por nível
14
- - Para segmentar jogadores por experiência
15
- - Exemplos: Júnior → Pleno → Sênior; faixas coloridas
16
-
17
- ## Dependências
18
-
19
- - **Point**: a categoria de ponto usada para progressão deve existir antes
20
- - **Configuração global**: definir qual ponto controla os níveis via `/v3/database/level_config`
21
-
22
- ## Checklist de Configuração no Studio
23
-
24
- - [ ] Definir _id do nível (ex: L0, L1, L2)
25
- - [ ] Definir nome do nível (ex: "Apprentice", "Master")
26
- - [ ] Definir descrição motivadora
27
- - [ ] Definir minPoints (pontuação mínima crescente)
28
- - [ ] Definir position (ordem sequencial, iniciando em 0)
29
- - [ ] Configurar categoria de ponto global (level_config)
30
-
31
- ## API Endpoints
32
-
33
- ### Listar Níveis
34
- **Método:** GET
35
- **Endpoint:** `/v3/level`
36
-
37
- ### Criar Nível
38
- **Método:** POST
39
- **Endpoint:** `/v3/level`
40
-
41
- **Exemplo de Body:**
42
- ```json
43
- {
44
- "level": "Apprentice",
45
- "position": 0,
46
- "description": "It indicates that you are learning and growing.",
47
- "minPoints": 10,
48
- "notifications": [],
49
- "requirements": [],
50
- "i18n": {},
51
- "extra": {},
52
- "techniques": ["GT85"],
53
- "_id": "L0"
54
- }
55
- ```
56
-
57
- ### Excluir Nível
58
- **Método:** DELETE
59
- **Endpoint:** `/v3/level/:id`
60
-
61
- ### Configurar Ponto Global para Níveis
62
- **Método:** PUT
63
- **Endpoint:** `/v3/database/level_config`
64
-
65
- **Exemplo de Body:**
66
- ```json
67
- {
68
- "_id": "global",
69
- "pointCategory": "xp"
70
- }
71
- ```
72
-
73
- ### Atualizar Posições dos Níveis
74
- **Método:** PUT
75
- **Endpoint:** `/v3/level/position`
76
- **Descrição:** Recalcula posições com base no minPoints.
77
-
78
- ## Validações e Testes
79
-
80
- - [ ] Níveis aparecem na lista GET /v3/level
81
- - [ ] minPoints é crescente entre níveis
82
- - [ ] level_config aponta para o ponto correto
83
- - [ ] Ao ganhar pontos suficientes, jogador sobe de nível automaticamente
1
+ # Level (Nível)
2
+
3
+ **Acesso Studio:** `/studio/level`
4
+ **API Endpoint:** `/v3/level`
5
+
6
+ ## O que é
7
+
8
+ Sistema de progressão por níveis. Permite definir a progressão dos jogadores com base em pontos acumulados ou outros critérios, atribuindo títulos ou benefícios a cada nível. Pode-se exigir desafios específicos para desbloquear certos níveis.
9
+
10
+ ## Quando usar
11
+
12
+ - Para criar senso de progressão e conquista
13
+ - Para desbloquear funcionalidades por nível
14
+ - Para segmentar jogadores por experiência
15
+ - Exemplos: Júnior → Pleno → Sênior; faixas coloridas
16
+
17
+ ## Dependências
18
+
19
+ - **Point**: a categoria de ponto usada para progressão deve existir antes
20
+ - **Configuração global**: definir qual ponto controla os níveis via `/v3/database/level_config`
21
+
22
+ ## Checklist de Configuração no Studio
23
+
24
+ - [ ] Definir _id do nível (ex: L0, L1, L2)
25
+ - [ ] Definir nome do nível (ex: "Apprentice", "Master")
26
+ - [ ] Definir descrição motivadora
27
+ - [ ] Definir minPoints (pontuação mínima crescente)
28
+ - [ ] Definir position (ordem sequencial, iniciando em 0)
29
+ - [ ] Configurar categoria de ponto global (level_config)
30
+
31
+ ## API Endpoints
32
+
33
+ ### Listar Níveis
34
+ **Método:** GET
35
+ **Endpoint:** `/v3/level`
36
+
37
+ ### Criar Nível
38
+ **Método:** POST
39
+ **Endpoint:** `/v3/level`
40
+
41
+ **Exemplo de Body:**
42
+ ```json
43
+ {
44
+ "level": "Apprentice",
45
+ "position": 0,
46
+ "description": "It indicates that you are learning and growing.",
47
+ "minPoints": 10,
48
+ "notifications": [],
49
+ "requirements": [],
50
+ "i18n": {},
51
+ "extra": {},
52
+ "techniques": ["GT85"],
53
+ "_id": "L0"
54
+ }
55
+ ```
56
+
57
+ ### Excluir Nível
58
+ **Método:** DELETE
59
+ **Endpoint:** `/v3/level/:id`
60
+
61
+ ### Configurar Ponto Global para Níveis
62
+ **Método:** PUT
63
+ **Endpoint:** `/v3/database/level_config`
64
+
65
+ **Exemplo de Body:**
66
+ ```json
67
+ {
68
+ "_id": "global",
69
+ "pointCategory": "xp"
70
+ }
71
+ ```
72
+
73
+ ### Atualizar Posições dos Níveis
74
+ **Método:** PUT
75
+ **Endpoint:** `/v3/level/position`
76
+ **Descrição:** Recalcula posições com base no minPoints.
77
+
78
+ ## Validações e Testes
79
+
80
+ - [ ] Níveis aparecem na lista GET /v3/level
81
+ - [ ] minPoints é crescente entre níveis
82
+ - [ ] level_config aponta para o ponto correto
83
+ - [ ] Ao ganhar pontos suficientes, jogador sobe de nível automaticamente
@@ -1,112 +1,112 @@
1
- # Lottery (Sorteio)
2
-
3
- **Acesso Studio:** `/studio/lottery`
4
- **API Endpoint:** `/v3/lottery`
5
-
6
- ## O que é
7
-
8
- Configuração de sorteios e concursos. Permite criar sorteios nos quais os jogadores participam com cupons obtidos em outras mecânicas, como desafios. É possível definir datas, limites de ganhadores e prêmios para os sorteados.
9
-
10
- ## Quando usar
11
-
12
- - Para criar campanhas promocionais com prêmios
13
- - Para sorteios de viagens, produtos ou experiências
14
- - Para incentivar participação em desafios (cupons como recompensa)
15
-
16
- ## Dependências
17
-
18
- - **Virtual Good** (opcional): itens podem ser usados como prêmio do sorteio
19
-
20
- ## Checklist de Configuração no Studio
21
-
22
- - [ ] Definir título e descrição do sorteio
23
- - [ ] Definir data do sorteio (drawDate)
24
- - [ ] Definir método de escolha (random_ticket)
25
- - [ ] Definir número máximo de ganhadores (maxWinners)
26
- - [ ] Definir limite por jogador (maxPerPlayer)
27
- - [ ] Configurar recompensas (rewards)
28
- - [ ] Definir se executa automaticamente (autoExecute)
29
-
30
- ## API Endpoints
31
-
32
- ### Listar Sorteios
33
- **Método:** GET
34
- **Endpoint:** `/v3/lottery`
35
-
36
- **Exemplo de Resposta:**
37
- ```json
38
- [
39
- {
40
- "title": "Travel to Cancun",
41
- "description": "Travel with a companion to Cancun, with airfare and accommodation, for 7 days.",
42
- "drawDate": 1690824650503,
43
- "autoExecute": true,
44
- "choiceMethod": "random_ticket",
45
- "maxWinners": 1,
46
- "maxPerPlayer": 1,
47
- "techniques": ["GT74"],
48
- "rewards": [
49
- {
50
- "total": 1,
51
- "type": 2,
52
- "item": "flight_ticket"
53
- }
54
- ],
55
- "_id": "DTj0x5z"
56
- }
57
- ]
58
- ```
59
-
60
- ### Criar Sorteio
61
- **Método:** POST
62
- **Endpoint:** `/v3/lottery`
63
- (Body igual ao exemplo de resposta acima)
64
-
65
- ### Deletar Sorteio
66
- **Método:** DELETE
67
- **Endpoint:** `/v3/lottery/:id`
68
-
69
- ### Listar Cupons
70
- **Método:** GET
71
- **Endpoint:** `/v3/lottery/ticket?lottery=:id`
72
-
73
- ### Criar Cupom
74
- **Método:** POST
75
- **Endpoint:** `/v3/lottery/ticket`
76
-
77
- **Exemplo de Body:**
78
- ```json
79
- {
80
- "lottery": "DTj0x5z",
81
- "player": "tom"
82
- }
83
- ```
84
-
85
- ### Deletar Cupom
86
- **Método:** DELETE
87
- **Endpoint:** `/v3/lottery/ticket/:id`
88
-
89
- ### Executar Sorteio
90
- **Método:** GET
91
- **Endpoint:** `/v3/lottery/:id/execute`
92
- **Descrição:** Executa o sorteio e seleciona os vencedores aleatoriamente.
93
-
94
- ### Reverter Execução do Sorteio
95
- **Método:** DELETE
96
- **Endpoint:** `/v3/lottery/:id/execute`
97
-
98
- ### Listar Vencedores
99
- **Método:** GET
100
- **Endpoint:** `/v3/lottery/winner?lottery=:id`
101
-
102
- ### Listar Participantes
103
- **Método:** GET
104
- **Endpoint:** `/v3/lottery/participants?lottery=:id`
105
-
106
- ## Validações e Testes
107
-
108
- - [ ] Sorteio aparece na lista GET /v3/lottery
109
- - [ ] Cupom é criado corretamente para jogador
110
- - [ ] Ao executar sorteio, vencedor é selecionado
111
- - [ ] Lista de vencedores retorna dados corretos
112
- - [ ] Reverter execução funciona
1
+ # Lottery (Sorteio)
2
+
3
+ **Acesso Studio:** `/studio/lottery`
4
+ **API Endpoint:** `/v3/lottery`
5
+
6
+ ## O que é
7
+
8
+ Configuração de sorteios e concursos. Permite criar sorteios nos quais os jogadores participam com cupons obtidos em outras mecânicas, como desafios. É possível definir datas, limites de ganhadores e prêmios para os sorteados.
9
+
10
+ ## Quando usar
11
+
12
+ - Para criar campanhas promocionais com prêmios
13
+ - Para sorteios de viagens, produtos ou experiências
14
+ - Para incentivar participação em desafios (cupons como recompensa)
15
+
16
+ ## Dependências
17
+
18
+ - **Virtual Good** (opcional): itens podem ser usados como prêmio do sorteio
19
+
20
+ ## Checklist de Configuração no Studio
21
+
22
+ - [ ] Definir título e descrição do sorteio
23
+ - [ ] Definir data do sorteio (drawDate)
24
+ - [ ] Definir método de escolha (random_ticket)
25
+ - [ ] Definir número máximo de ganhadores (maxWinners)
26
+ - [ ] Definir limite por jogador (maxPerPlayer)
27
+ - [ ] Configurar recompensas (rewards)
28
+ - [ ] Definir se executa automaticamente (autoExecute)
29
+
30
+ ## API Endpoints
31
+
32
+ ### Listar Sorteios
33
+ **Método:** GET
34
+ **Endpoint:** `/v3/lottery`
35
+
36
+ **Exemplo de Resposta:**
37
+ ```json
38
+ [
39
+ {
40
+ "title": "Travel to Cancun",
41
+ "description": "Travel with a companion to Cancun, with airfare and accommodation, for 7 days.",
42
+ "drawDate": 1690824650503,
43
+ "autoExecute": true,
44
+ "choiceMethod": "random_ticket",
45
+ "maxWinners": 1,
46
+ "maxPerPlayer": 1,
47
+ "techniques": ["GT74"],
48
+ "rewards": [
49
+ {
50
+ "total": 1,
51
+ "type": 2,
52
+ "item": "flight_ticket"
53
+ }
54
+ ],
55
+ "_id": "DTj0x5z"
56
+ }
57
+ ]
58
+ ```
59
+
60
+ ### Criar Sorteio
61
+ **Método:** POST
62
+ **Endpoint:** `/v3/lottery`
63
+ (Body igual ao exemplo de resposta acima)
64
+
65
+ ### Deletar Sorteio
66
+ **Método:** DELETE
67
+ **Endpoint:** `/v3/lottery/:id`
68
+
69
+ ### Listar Cupons
70
+ **Método:** GET
71
+ **Endpoint:** `/v3/lottery/ticket?lottery=:id`
72
+
73
+ ### Criar Cupom
74
+ **Método:** POST
75
+ **Endpoint:** `/v3/lottery/ticket`
76
+
77
+ **Exemplo de Body:**
78
+ ```json
79
+ {
80
+ "lottery": "DTj0x5z",
81
+ "player": "tom"
82
+ }
83
+ ```
84
+
85
+ ### Deletar Cupom
86
+ **Método:** DELETE
87
+ **Endpoint:** `/v3/lottery/ticket/:id`
88
+
89
+ ### Executar Sorteio
90
+ **Método:** GET
91
+ **Endpoint:** `/v3/lottery/:id/execute`
92
+ **Descrição:** Executa o sorteio e seleciona os vencedores aleatoriamente.
93
+
94
+ ### Reverter Execução do Sorteio
95
+ **Método:** DELETE
96
+ **Endpoint:** `/v3/lottery/:id/execute`
97
+
98
+ ### Listar Vencedores
99
+ **Método:** GET
100
+ **Endpoint:** `/v3/lottery/winner?lottery=:id`
101
+
102
+ ### Listar Participantes
103
+ **Método:** GET
104
+ **Endpoint:** `/v3/lottery/participants?lottery=:id`
105
+
106
+ ## Validações e Testes
107
+
108
+ - [ ] Sorteio aparece na lista GET /v3/lottery
109
+ - [ ] Cupom é criado corretamente para jogador
110
+ - [ ] Ao executar sorteio, vencedor é selecionado
111
+ - [ ] Lista de vencedores retorna dados corretos
112
+ - [ ] Reverter execução funciona
@@ -1,27 +1,27 @@
1
- # Marketplace (Mercado)
2
-
3
- **Acesso Studio:** `/market`
4
-
5
- ## O que é
6
-
7
- Compartilhamento e reutilização de componentes prontos para gamificações. Disponibiliza um catálogo de componentes já configurados — como desafios, rankings, widgets, modelos de gamificação — que podem ser reutilizados em diferentes projetos, acelerando a implementação.
8
-
9
- ## Quando usar
10
-
11
- - Para reutilizar modelos de gamificação validados
12
- - Para compartilhar componentes entre departamentos
13
- - Para acelerar implementação com templates prontos
14
- - Para padronizar gamificações na organização
15
-
16
- ## Checklist de Configuração
17
-
18
- - [ ] Acessar o marketplace via /market
19
- - [ ] Selecionar componente desejado
20
- - [ ] Importar para a gamificação atual
21
- - [ ] Customizar conforme necessidade
22
-
23
- ## Validações e Testes
24
-
25
- - [ ] Componente é importado com sucesso
26
- - [ ] Configurações importadas estão corretas
27
- - [ ] Componente funciona na gamificação atual
1
+ # Marketplace (Mercado)
2
+
3
+ **Acesso Studio:** `/market`
4
+
5
+ ## O que é
6
+
7
+ Compartilhamento e reutilização de componentes prontos para gamificações. Disponibiliza um catálogo de componentes já configurados — como desafios, rankings, widgets, modelos de gamificação — que podem ser reutilizados em diferentes projetos, acelerando a implementação.
8
+
9
+ ## Quando usar
10
+
11
+ - Para reutilizar modelos de gamificação validados
12
+ - Para compartilhar componentes entre departamentos
13
+ - Para acelerar implementação com templates prontos
14
+ - Para padronizar gamificações na organização
15
+
16
+ ## Checklist de Configuração
17
+
18
+ - [ ] Acessar o marketplace via /market
19
+ - [ ] Selecionar componente desejado
20
+ - [ ] Importar para a gamificação atual
21
+ - [ ] Customizar conforme necessidade
22
+
23
+ ## Validações e Testes
24
+
25
+ - [ ] Componente é importado com sucesso
26
+ - [ ] Configurações importadas estão corretas
27
+ - [ ] Componente funciona na gamificação atual
@@ -1,82 +1,82 @@
1
- # Mystery (Mistério / Caixa Surpresa)
2
-
3
- **Acesso Studio:** `/studio/mystery`
4
- **API Endpoint:** `/v3/mystery`
5
-
6
- ## O que é
7
-
8
- Jogos de probabilidade e recompensas aleatórias. Permite criar experiências como caixas surpresa, rodas da fortuna, raspadinhas e outros jogos baseados em sorte, definindo as chances e prêmios disponíveis.
9
-
10
- ## Quando usar
11
-
12
- - Para criar rodas da fortuna
13
- - Para raspadinhas premiadas
14
- - Para jogos de cara ou coroa
15
- - Para recompensas aleatórias com probabilidades definidas
16
-
17
- ## Checklist de Configuração no Studio
18
-
19
- - [ ] Definir título da mystery box
20
- - [ ] Definir opções com probabilidades (devem somar 1.0)
21
- - [ ] Definir número de colunas para exibição
22
- - [ ] Configurar combinações vencedoras (win_chart)
23
- - [ ] Definir recompensas para cada combinação
24
- - [ ] Configurar requisitos para jogar (requirements)
25
-
26
- ## API Endpoints
27
-
28
- ### Listar Mystery Boxes
29
- **Método:** GET
30
- **Endpoint:** `/v3/mystery`
31
-
32
- ### Criar Mystery Box
33
- **Método:** POST
34
- **Endpoint:** `/v3/mystery`
35
-
36
- **Exemplo de Body:**
37
- ```json
38
- {
39
- "title": "Heads or Tails",
40
- "options": [
41
- { "title": "Heads", "value": "heads", "probability": 0.5 },
42
- { "title": "Tails", "value": "tails", "probability": 0.5 }
43
- ],
44
- "columns": 1,
45
- "requirements": [],
46
- "win_chart": [
47
- {
48
- "combination": ["heads"],
49
- "orderSensitive": false,
50
- "reward": {
51
- "total": 1,
52
- "type": 0,
53
- "item": "coin"
54
- }
55
- }
56
- ],
57
- "techniques": ["GT72"],
58
- "_id": "64a5b464d8dcca49bcf7edd0"
59
- }
60
- ```
61
-
62
- ### Deletar Mystery Box
63
- **Método:** DELETE
64
- **Endpoint:** `/v3/mystery/:id`
65
-
66
- ### Avaliar Condições
67
- **Método:** GET
68
- **Endpoint:** `/v3/mystery/evaluate/:id?player=:player_id`
69
- **Descrição:** Verifica se o jogador está apto a executar a Mystery Box.
70
-
71
- ### Executar Mystery Box
72
- **Método:** GET
73
- **Endpoint:** `/v3/mystery/execute/:id?player=:player_id`
74
- **Descrição:** Executa o sorteio e retorna o resultado.
75
-
76
- ## Validações e Testes
77
-
78
- - [ ] Mystery Box aparece na lista
79
- - [ ] Soma das probabilidades é 1.0
80
- - [ ] Jogador consegue executar a mystery box
81
- - [ ] Combinação vencedora entrega recompensa corretamente
82
- - [ ] Requisitos são validados antes da execução
1
+ # Mystery (Mistério / Caixa Surpresa)
2
+
3
+ **Acesso Studio:** `/studio/mystery`
4
+ **API Endpoint:** `/v3/mystery`
5
+
6
+ ## O que é
7
+
8
+ Jogos de probabilidade e recompensas aleatórias. Permite criar experiências como caixas surpresa, rodas da fortuna, raspadinhas e outros jogos baseados em sorte, definindo as chances e prêmios disponíveis.
9
+
10
+ ## Quando usar
11
+
12
+ - Para criar rodas da fortuna
13
+ - Para raspadinhas premiadas
14
+ - Para jogos de cara ou coroa
15
+ - Para recompensas aleatórias com probabilidades definidas
16
+
17
+ ## Checklist de Configuração no Studio
18
+
19
+ - [ ] Definir título da mystery box
20
+ - [ ] Definir opções com probabilidades (devem somar 1.0)
21
+ - [ ] Definir número de colunas para exibição
22
+ - [ ] Configurar combinações vencedoras (win_chart)
23
+ - [ ] Definir recompensas para cada combinação
24
+ - [ ] Configurar requisitos para jogar (requirements)
25
+
26
+ ## API Endpoints
27
+
28
+ ### Listar Mystery Boxes
29
+ **Método:** GET
30
+ **Endpoint:** `/v3/mystery`
31
+
32
+ ### Criar Mystery Box
33
+ **Método:** POST
34
+ **Endpoint:** `/v3/mystery`
35
+
36
+ **Exemplo de Body:**
37
+ ```json
38
+ {
39
+ "title": "Heads or Tails",
40
+ "options": [
41
+ { "title": "Heads", "value": "heads", "probability": 0.5 },
42
+ { "title": "Tails", "value": "tails", "probability": 0.5 }
43
+ ],
44
+ "columns": 1,
45
+ "requirements": [],
46
+ "win_chart": [
47
+ {
48
+ "combination": ["heads"],
49
+ "orderSensitive": false,
50
+ "reward": {
51
+ "total": 1,
52
+ "type": 0,
53
+ "item": "coin"
54
+ }
55
+ }
56
+ ],
57
+ "techniques": ["GT72"],
58
+ "_id": "64a5b464d8dcca49bcf7edd0"
59
+ }
60
+ ```
61
+
62
+ ### Deletar Mystery Box
63
+ **Método:** DELETE
64
+ **Endpoint:** `/v3/mystery/:id`
65
+
66
+ ### Avaliar Condições
67
+ **Método:** GET
68
+ **Endpoint:** `/v3/mystery/evaluate/:id?player=:player_id`
69
+ **Descrição:** Verifica se o jogador está apto a executar a Mystery Box.
70
+
71
+ ### Executar Mystery Box
72
+ **Método:** GET
73
+ **Endpoint:** `/v3/mystery/execute/:id?player=:player_id`
74
+ **Descrição:** Executa o sorteio e retorna o resultado.
75
+
76
+ ## Validações e Testes
77
+
78
+ - [ ] Mystery Box aparece na lista
79
+ - [ ] Soma das probabilidades é 1.0
80
+ - [ ] Jogador consegue executar a mystery box
81
+ - [ ] Combinação vencedora entrega recompensa corretamente
82
+ - [ ] Requisitos são validados antes da execução