@semacode/cli 3.13.1 → 4.0.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.
- package/dist/cliGrammar.js +17 -5
- package/dist/cliHelpTexto.js +4 -3
- package/dist/contextPack.d.ts +75 -0
- package/dist/contextPack.js +130 -0
- package/dist/driftPack.d.ts +65 -0
- package/dist/driftPack.js +96 -0
- package/dist/entrypointPack.d.ts +47 -0
- package/dist/entrypointPack.js +79 -0
- package/dist/index.part05.js +7 -1
- package/dist/index.part06.js +51 -0
- package/dist/index.part07.d.ts +1 -1
- package/dist/index.part07.js +16 -2
- package/dist/index.part08.js +1 -1
- package/dist/indexPack.d.ts +54 -0
- package/dist/indexPack.js +140 -0
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/sync/index.js +35 -35
- package/docs/auth.md +26 -26
- package/docs/database.md +15 -15
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/i18n.md +15 -15
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/php_crud.sema +170 -170
- package/exemplos/profile_conversas.sema +165 -165
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/package.json +1 -1
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
module exemplos.operacao_estrategia.rollout {
|
|
2
|
-
docs {
|
|
3
|
-
resumo: "Task oficial para ativar strategy com nova versao de modelo apos aprovacao manual."
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
enum StatusStrategy {
|
|
7
|
-
RASCUNHO,
|
|
8
|
-
ATIVA,
|
|
9
|
-
QUARENTENA,
|
|
10
|
-
DESATIVADA
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
enum StatusGate {
|
|
14
|
-
ABERTO,
|
|
15
|
-
FECHADO
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
task ativar_strategy_com_nova_versao {
|
|
19
|
-
docs {
|
|
20
|
-
resumo: "Promove a versao candidata aprovada e reabre a strategy so quando houver aprovacao manual e gate global devidamente controlado."
|
|
21
|
-
}
|
|
22
|
-
input {
|
|
23
|
-
strategy_id: Id required
|
|
24
|
-
versao_modelo_ativa: Texto required
|
|
25
|
-
versao_modelo_candidata: Texto required
|
|
26
|
-
strategy_status_atual: StatusStrategy required
|
|
27
|
-
gate_global_atual: StatusGate required
|
|
28
|
-
aprovacao_manual: Booleano required
|
|
29
|
-
}
|
|
30
|
-
output {
|
|
31
|
-
strategy_status: StatusStrategy
|
|
32
|
-
gate_global: StatusGate
|
|
33
|
-
versao_modelo_ativa: Texto
|
|
34
|
-
}
|
|
35
|
-
authz {
|
|
36
|
-
escopo: strategy.rollout.ativar
|
|
37
|
-
tenant: obrigatorio
|
|
38
|
-
}
|
|
39
|
-
dados {
|
|
40
|
-
classificacao_padrao: interno
|
|
41
|
-
redacao_log: obrigatoria
|
|
42
|
-
input {
|
|
43
|
-
strategy_id: interno
|
|
44
|
-
versao_modelo_ativa: interno
|
|
45
|
-
versao_modelo_candidata: interno
|
|
46
|
-
strategy_status_atual: interno
|
|
47
|
-
gate_global_atual: interno
|
|
48
|
-
aprovacao_manual: interno
|
|
49
|
-
}
|
|
50
|
-
output {
|
|
51
|
-
strategy_status: interno
|
|
52
|
-
gate_global: interno
|
|
53
|
-
versao_modelo_ativa: interno
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
audit {
|
|
57
|
-
evento: strategy.rollout.ativado
|
|
58
|
-
ator: sistema.strategy
|
|
59
|
-
correlacao: request_id
|
|
60
|
-
retencao: "180d"
|
|
61
|
-
motivo: obrigatorio
|
|
62
|
-
}
|
|
63
|
-
forbidden {
|
|
64
|
-
shell.exec
|
|
65
|
-
log.segredo
|
|
66
|
-
retorno.credencial
|
|
67
|
-
}
|
|
68
|
-
rules {
|
|
69
|
-
strategy_id existe
|
|
70
|
-
versao_modelo_ativa existe
|
|
71
|
-
versao_modelo_candidata existe
|
|
72
|
-
strategy_status_atual em [RASCUNHO, QUARENTENA]
|
|
73
|
-
gate_global_atual == FECHADO
|
|
74
|
-
aprovacao_manual == verdadeiro
|
|
75
|
-
}
|
|
76
|
-
effects {
|
|
77
|
-
persistencia strategy criticidade = alta
|
|
78
|
-
evento strategy_ativada criticidade = alta
|
|
79
|
-
auditoria rollout criticidade = alta
|
|
80
|
-
}
|
|
81
|
-
vinculos {
|
|
82
|
-
tabela: strategy
|
|
83
|
-
recurso: model_registry
|
|
84
|
-
evento: strategy_ativada
|
|
85
|
-
}
|
|
86
|
-
execucao {
|
|
87
|
-
idempotencia: verdadeiro
|
|
88
|
-
timeout: "15s"
|
|
89
|
-
retry: "nenhum"
|
|
90
|
-
compensacao: "reverter_para_versao_modelo_ativa_anterior"
|
|
91
|
-
criticidade_operacional: alta
|
|
92
|
-
}
|
|
93
|
-
state governanca_estrategia {
|
|
94
|
-
transitions {
|
|
95
|
-
QUARENTENA -> ATIVA
|
|
96
|
-
RASCUNHO -> ATIVA
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
guarantees {
|
|
100
|
-
strategy_status == ATIVA
|
|
101
|
-
gate_global == ABERTO
|
|
102
|
-
versao_modelo_ativa existe
|
|
103
|
-
}
|
|
104
|
-
tests {
|
|
105
|
-
caso "reativa strategy apos aprovacao do novo modelo" {
|
|
106
|
-
given {
|
|
107
|
-
strategy_id: "strategy_alpha"
|
|
108
|
-
versao_modelo_ativa: "modelo_2026_12"
|
|
109
|
-
versao_modelo_candidata: "modelo_2026_13"
|
|
110
|
-
strategy_status_atual: "QUARENTENA"
|
|
111
|
-
gate_global_atual: "FECHADO"
|
|
112
|
-
aprovacao_manual: verdadeiro
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
expect {
|
|
116
|
-
sucesso: verdadeiro
|
|
117
|
-
strategy_status: "ATIVA"
|
|
118
|
-
gate_global: "ABERTO"
|
|
119
|
-
versao_modelo_ativa: "modelo_2026_13"
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
1
|
+
module exemplos.operacao_estrategia.rollout {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Task oficial para ativar strategy com nova versao de modelo apos aprovacao manual."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
enum StatusStrategy {
|
|
7
|
+
RASCUNHO,
|
|
8
|
+
ATIVA,
|
|
9
|
+
QUARENTENA,
|
|
10
|
+
DESATIVADA
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum StatusGate {
|
|
14
|
+
ABERTO,
|
|
15
|
+
FECHADO
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
task ativar_strategy_com_nova_versao {
|
|
19
|
+
docs {
|
|
20
|
+
resumo: "Promove a versao candidata aprovada e reabre a strategy so quando houver aprovacao manual e gate global devidamente controlado."
|
|
21
|
+
}
|
|
22
|
+
input {
|
|
23
|
+
strategy_id: Id required
|
|
24
|
+
versao_modelo_ativa: Texto required
|
|
25
|
+
versao_modelo_candidata: Texto required
|
|
26
|
+
strategy_status_atual: StatusStrategy required
|
|
27
|
+
gate_global_atual: StatusGate required
|
|
28
|
+
aprovacao_manual: Booleano required
|
|
29
|
+
}
|
|
30
|
+
output {
|
|
31
|
+
strategy_status: StatusStrategy
|
|
32
|
+
gate_global: StatusGate
|
|
33
|
+
versao_modelo_ativa: Texto
|
|
34
|
+
}
|
|
35
|
+
authz {
|
|
36
|
+
escopo: strategy.rollout.ativar
|
|
37
|
+
tenant: obrigatorio
|
|
38
|
+
}
|
|
39
|
+
dados {
|
|
40
|
+
classificacao_padrao: interno
|
|
41
|
+
redacao_log: obrigatoria
|
|
42
|
+
input {
|
|
43
|
+
strategy_id: interno
|
|
44
|
+
versao_modelo_ativa: interno
|
|
45
|
+
versao_modelo_candidata: interno
|
|
46
|
+
strategy_status_atual: interno
|
|
47
|
+
gate_global_atual: interno
|
|
48
|
+
aprovacao_manual: interno
|
|
49
|
+
}
|
|
50
|
+
output {
|
|
51
|
+
strategy_status: interno
|
|
52
|
+
gate_global: interno
|
|
53
|
+
versao_modelo_ativa: interno
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
audit {
|
|
57
|
+
evento: strategy.rollout.ativado
|
|
58
|
+
ator: sistema.strategy
|
|
59
|
+
correlacao: request_id
|
|
60
|
+
retencao: "180d"
|
|
61
|
+
motivo: obrigatorio
|
|
62
|
+
}
|
|
63
|
+
forbidden {
|
|
64
|
+
shell.exec
|
|
65
|
+
log.segredo
|
|
66
|
+
retorno.credencial
|
|
67
|
+
}
|
|
68
|
+
rules {
|
|
69
|
+
strategy_id existe
|
|
70
|
+
versao_modelo_ativa existe
|
|
71
|
+
versao_modelo_candidata existe
|
|
72
|
+
strategy_status_atual em [RASCUNHO, QUARENTENA]
|
|
73
|
+
gate_global_atual == FECHADO
|
|
74
|
+
aprovacao_manual == verdadeiro
|
|
75
|
+
}
|
|
76
|
+
effects {
|
|
77
|
+
persistencia strategy criticidade = alta
|
|
78
|
+
evento strategy_ativada criticidade = alta
|
|
79
|
+
auditoria rollout criticidade = alta
|
|
80
|
+
}
|
|
81
|
+
vinculos {
|
|
82
|
+
tabela: strategy
|
|
83
|
+
recurso: model_registry
|
|
84
|
+
evento: strategy_ativada
|
|
85
|
+
}
|
|
86
|
+
execucao {
|
|
87
|
+
idempotencia: verdadeiro
|
|
88
|
+
timeout: "15s"
|
|
89
|
+
retry: "nenhum"
|
|
90
|
+
compensacao: "reverter_para_versao_modelo_ativa_anterior"
|
|
91
|
+
criticidade_operacional: alta
|
|
92
|
+
}
|
|
93
|
+
state governanca_estrategia {
|
|
94
|
+
transitions {
|
|
95
|
+
QUARENTENA -> ATIVA
|
|
96
|
+
RASCUNHO -> ATIVA
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
guarantees {
|
|
100
|
+
strategy_status == ATIVA
|
|
101
|
+
gate_global == ABERTO
|
|
102
|
+
versao_modelo_ativa existe
|
|
103
|
+
}
|
|
104
|
+
tests {
|
|
105
|
+
caso "reativa strategy apos aprovacao do novo modelo" {
|
|
106
|
+
given {
|
|
107
|
+
strategy_id: "strategy_alpha"
|
|
108
|
+
versao_modelo_ativa: "modelo_2026_12"
|
|
109
|
+
versao_modelo_candidata: "modelo_2026_13"
|
|
110
|
+
strategy_status_atual: "QUARENTENA"
|
|
111
|
+
gate_global_atual: "FECHADO"
|
|
112
|
+
aprovacao_manual: verdadeiro
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
expect {
|
|
116
|
+
sucesso: verdadeiro
|
|
117
|
+
strategy_status: "ATIVA"
|
|
118
|
+
gate_global: "ABERTO"
|
|
119
|
+
versao_modelo_ativa: "modelo_2026_13"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
package/exemplos/pagamento.sema
CHANGED
package/exemplos/pedido.sema
CHANGED
package/exemplos/permissao.sema
CHANGED
package/exemplos/php_crud.sema
CHANGED
|
@@ -1,170 +1,170 @@
|
|
|
1
|
-
module exemplos.php.crud {
|
|
2
|
-
entity Pedido {
|
|
3
|
-
fields {
|
|
4
|
-
id: Id
|
|
5
|
-
cliente: Texto
|
|
6
|
-
total: Numero
|
|
7
|
-
status: Texto
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
task criar_pedido {
|
|
12
|
-
input {
|
|
13
|
-
cliente: Texto required
|
|
14
|
-
total: Numero required
|
|
15
|
-
}
|
|
16
|
-
output {
|
|
17
|
-
pedido: Pedido
|
|
18
|
-
}
|
|
19
|
-
rules {
|
|
20
|
-
cliente deve_ser preenchido
|
|
21
|
-
total deve_ser positivo
|
|
22
|
-
}
|
|
23
|
-
effects {
|
|
24
|
-
persistencia Pedido
|
|
25
|
-
auditoria pedido_criado
|
|
26
|
-
}
|
|
27
|
-
guarantees {
|
|
28
|
-
pedido existe
|
|
29
|
-
}
|
|
30
|
-
impl {
|
|
31
|
-
php_rota: pedidos.rota.criarPedido
|
|
32
|
-
php_servico: pedidos.servico.criarPedido
|
|
33
|
-
php_persistencia: pedidos.repositorio.criar
|
|
34
|
-
}
|
|
35
|
-
vinculos {
|
|
36
|
-
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
37
|
-
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
38
|
-
arquivo: "src/Pedidos/Repository/PedidoRepository.php"
|
|
39
|
-
simbolo: pedidos.rota.criarPedido
|
|
40
|
-
}
|
|
41
|
-
tests {
|
|
42
|
-
caso "cria pedido" {
|
|
43
|
-
given {
|
|
44
|
-
cliente: "Cliente Exemplo"
|
|
45
|
-
total: 150.0
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
expect {
|
|
49
|
-
sucesso: verdadeiro
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
task listar_pedidos {
|
|
56
|
-
input {
|
|
57
|
-
status: Texto
|
|
58
|
-
}
|
|
59
|
-
output {
|
|
60
|
-
pedidos: Lista
|
|
61
|
-
}
|
|
62
|
-
effects {
|
|
63
|
-
consulta Pedido
|
|
64
|
-
}
|
|
65
|
-
guarantees {
|
|
66
|
-
pedidos existe
|
|
67
|
-
}
|
|
68
|
-
impl {
|
|
69
|
-
php_rota: pedidos.rota.listarPedidos
|
|
70
|
-
php_servico: pedidos.servico.listarPedidos
|
|
71
|
-
}
|
|
72
|
-
vinculos {
|
|
73
|
-
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
74
|
-
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
75
|
-
simbolo: pedidos.rota.listarPedidos
|
|
76
|
-
}
|
|
77
|
-
tests {
|
|
78
|
-
caso "lista pedidos por status" {
|
|
79
|
-
given {
|
|
80
|
-
status: "pago"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
expect {
|
|
84
|
-
sucesso: verdadeiro
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
task cancelar_pedido {
|
|
91
|
-
input {
|
|
92
|
-
id: Id required
|
|
93
|
-
}
|
|
94
|
-
output {
|
|
95
|
-
cancelado: Booleano
|
|
96
|
-
}
|
|
97
|
-
rules {
|
|
98
|
-
id deve_ser valido
|
|
99
|
-
}
|
|
100
|
-
effects {
|
|
101
|
-
persistencia Pedido
|
|
102
|
-
auditoria pedido_cancelado
|
|
103
|
-
}
|
|
104
|
-
guarantees {
|
|
105
|
-
cancelado == verdadeiro
|
|
106
|
-
}
|
|
107
|
-
impl {
|
|
108
|
-
php_rota: pedidos.rota.cancelarPedido
|
|
109
|
-
php_servico: pedidos.servico.cancelarPedido
|
|
110
|
-
php_persistencia: pedidos.repositorio.atualizarStatus
|
|
111
|
-
}
|
|
112
|
-
vinculos {
|
|
113
|
-
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
114
|
-
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
115
|
-
arquivo: "src/Pedidos/Repository/PedidoRepository.php"
|
|
116
|
-
simbolo: pedidos.rota.cancelarPedido
|
|
117
|
-
}
|
|
118
|
-
tests {
|
|
119
|
-
caso "cancela pedido por id" {
|
|
120
|
-
given {
|
|
121
|
-
id: "ped_1"
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
expect {
|
|
125
|
-
sucesso: verdadeiro
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
route pedidos_criar {
|
|
132
|
-
metodo: POST
|
|
133
|
-
caminho: /pedidos
|
|
134
|
-
task: criar_pedido
|
|
135
|
-
finalidade: cadastro_pedido
|
|
136
|
-
input {
|
|
137
|
-
cliente: Texto
|
|
138
|
-
total: Numero
|
|
139
|
-
}
|
|
140
|
-
output {
|
|
141
|
-
pedido: Pedido
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
route pedidos_listar {
|
|
146
|
-
metodo: GET
|
|
147
|
-
caminho: /pedidos
|
|
148
|
-
task: listar_pedidos
|
|
149
|
-
finalidade: consulta_pedidos
|
|
150
|
-
input {
|
|
151
|
-
status: Texto
|
|
152
|
-
}
|
|
153
|
-
output {
|
|
154
|
-
pedidos: Lista
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
route pedidos_cancelar {
|
|
159
|
-
metodo: PATCH
|
|
160
|
-
caminho: "/pedidos/{id}/cancelar"
|
|
161
|
-
task: cancelar_pedido
|
|
162
|
-
finalidade: cancelamento_pedido
|
|
163
|
-
input {
|
|
164
|
-
id: Id
|
|
165
|
-
}
|
|
166
|
-
output {
|
|
167
|
-
cancelado: Booleano
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
1
|
+
module exemplos.php.crud {
|
|
2
|
+
entity Pedido {
|
|
3
|
+
fields {
|
|
4
|
+
id: Id
|
|
5
|
+
cliente: Texto
|
|
6
|
+
total: Numero
|
|
7
|
+
status: Texto
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
task criar_pedido {
|
|
12
|
+
input {
|
|
13
|
+
cliente: Texto required
|
|
14
|
+
total: Numero required
|
|
15
|
+
}
|
|
16
|
+
output {
|
|
17
|
+
pedido: Pedido
|
|
18
|
+
}
|
|
19
|
+
rules {
|
|
20
|
+
cliente deve_ser preenchido
|
|
21
|
+
total deve_ser positivo
|
|
22
|
+
}
|
|
23
|
+
effects {
|
|
24
|
+
persistencia Pedido
|
|
25
|
+
auditoria pedido_criado
|
|
26
|
+
}
|
|
27
|
+
guarantees {
|
|
28
|
+
pedido existe
|
|
29
|
+
}
|
|
30
|
+
impl {
|
|
31
|
+
php_rota: pedidos.rota.criarPedido
|
|
32
|
+
php_servico: pedidos.servico.criarPedido
|
|
33
|
+
php_persistencia: pedidos.repositorio.criar
|
|
34
|
+
}
|
|
35
|
+
vinculos {
|
|
36
|
+
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
37
|
+
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
38
|
+
arquivo: "src/Pedidos/Repository/PedidoRepository.php"
|
|
39
|
+
simbolo: pedidos.rota.criarPedido
|
|
40
|
+
}
|
|
41
|
+
tests {
|
|
42
|
+
caso "cria pedido" {
|
|
43
|
+
given {
|
|
44
|
+
cliente: "Cliente Exemplo"
|
|
45
|
+
total: 150.0
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
expect {
|
|
49
|
+
sucesso: verdadeiro
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
task listar_pedidos {
|
|
56
|
+
input {
|
|
57
|
+
status: Texto
|
|
58
|
+
}
|
|
59
|
+
output {
|
|
60
|
+
pedidos: Lista
|
|
61
|
+
}
|
|
62
|
+
effects {
|
|
63
|
+
consulta Pedido
|
|
64
|
+
}
|
|
65
|
+
guarantees {
|
|
66
|
+
pedidos existe
|
|
67
|
+
}
|
|
68
|
+
impl {
|
|
69
|
+
php_rota: pedidos.rota.listarPedidos
|
|
70
|
+
php_servico: pedidos.servico.listarPedidos
|
|
71
|
+
}
|
|
72
|
+
vinculos {
|
|
73
|
+
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
74
|
+
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
75
|
+
simbolo: pedidos.rota.listarPedidos
|
|
76
|
+
}
|
|
77
|
+
tests {
|
|
78
|
+
caso "lista pedidos por status" {
|
|
79
|
+
given {
|
|
80
|
+
status: "pago"
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
expect {
|
|
84
|
+
sucesso: verdadeiro
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
task cancelar_pedido {
|
|
91
|
+
input {
|
|
92
|
+
id: Id required
|
|
93
|
+
}
|
|
94
|
+
output {
|
|
95
|
+
cancelado: Booleano
|
|
96
|
+
}
|
|
97
|
+
rules {
|
|
98
|
+
id deve_ser valido
|
|
99
|
+
}
|
|
100
|
+
effects {
|
|
101
|
+
persistencia Pedido
|
|
102
|
+
auditoria pedido_cancelado
|
|
103
|
+
}
|
|
104
|
+
guarantees {
|
|
105
|
+
cancelado == verdadeiro
|
|
106
|
+
}
|
|
107
|
+
impl {
|
|
108
|
+
php_rota: pedidos.rota.cancelarPedido
|
|
109
|
+
php_servico: pedidos.servico.cancelarPedido
|
|
110
|
+
php_persistencia: pedidos.repositorio.atualizarStatus
|
|
111
|
+
}
|
|
112
|
+
vinculos {
|
|
113
|
+
arquivo: "src/Pedidos/Controller/PedidoController.php"
|
|
114
|
+
arquivo: "src/Pedidos/Service/PedidoService.php"
|
|
115
|
+
arquivo: "src/Pedidos/Repository/PedidoRepository.php"
|
|
116
|
+
simbolo: pedidos.rota.cancelarPedido
|
|
117
|
+
}
|
|
118
|
+
tests {
|
|
119
|
+
caso "cancela pedido por id" {
|
|
120
|
+
given {
|
|
121
|
+
id: "ped_1"
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
expect {
|
|
125
|
+
sucesso: verdadeiro
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
route pedidos_criar {
|
|
132
|
+
metodo: POST
|
|
133
|
+
caminho: /pedidos
|
|
134
|
+
task: criar_pedido
|
|
135
|
+
finalidade: cadastro_pedido
|
|
136
|
+
input {
|
|
137
|
+
cliente: Texto
|
|
138
|
+
total: Numero
|
|
139
|
+
}
|
|
140
|
+
output {
|
|
141
|
+
pedido: Pedido
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
route pedidos_listar {
|
|
146
|
+
metodo: GET
|
|
147
|
+
caminho: /pedidos
|
|
148
|
+
task: listar_pedidos
|
|
149
|
+
finalidade: consulta_pedidos
|
|
150
|
+
input {
|
|
151
|
+
status: Texto
|
|
152
|
+
}
|
|
153
|
+
output {
|
|
154
|
+
pedidos: Lista
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
route pedidos_cancelar {
|
|
159
|
+
metodo: PATCH
|
|
160
|
+
caminho: "/pedidos/{id}/cancelar"
|
|
161
|
+
task: cancelar_pedido
|
|
162
|
+
finalidade: cancelamento_pedido
|
|
163
|
+
input {
|
|
164
|
+
id: Id
|
|
165
|
+
}
|
|
166
|
+
output {
|
|
167
|
+
cancelado: Booleano
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|