termo_core 0.1.1 → 0.1.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.
- package/dist/base/servico_termotubos.d.ts +2 -0
- package/dist/base/servicos.d.ts +1 -1
- package/dist/base/servicos.js +23 -8
- package/dist/{sell → flow}/index.d.ts +1 -1
- package/dist/{sell → flow}/index.js +1 -1
- package/dist/{sell → flow}/rotas.d.ts +10 -4
- package/dist/{sell → flow}/rotas.js +6 -5
- package/dist/{sell → flow}/tipos.d.ts +0 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/portal/rotas.d.ts +4 -191
- package/dist/portal/rotas.js +4 -286
- package/dist/portal/tipos.d.ts +0 -140
- package/package.json +1 -1
- /package/dist/{sell → flow}/tipos.js +0 -0
|
@@ -7,6 +7,8 @@ export interface ServicoTermotubos {
|
|
|
7
7
|
readonly endereco_no_localhost: string | null;
|
|
8
8
|
readonly endereco_no_sandbox: string;
|
|
9
9
|
readonly endereco_em_production: string;
|
|
10
|
+
/** `false` para um serviço que ainda não publicou o `openapi.json` (o gerador não baixa o contrato dele). */
|
|
11
|
+
readonly ativo: boolean;
|
|
10
12
|
}
|
|
11
13
|
export declare function endereco_no_ambiente(servico: ServicoTermotubos, ambiente: Ambiente): string;
|
|
12
14
|
/**
|
package/dist/base/servicos.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import type { ServicoTermotubos } from "./servico_termotubos.js";
|
|
|
2
2
|
export declare const TERMO_AI: ServicoTermotubos;
|
|
3
3
|
export declare const TERMO_AUTH: ServicoTermotubos;
|
|
4
4
|
export declare const TERMO_BUCKET: ServicoTermotubos;
|
|
5
|
+
export declare const TERMO_FLOW: ServicoTermotubos;
|
|
5
6
|
export declare const TERMO_INTRANET: ServicoTermotubos;
|
|
6
7
|
export declare const TERMO_LEADS: ServicoTermotubos;
|
|
7
8
|
export declare const TERMO_MCP: ServicoTermotubos;
|
|
8
9
|
export declare const TERMO_PORTAL: ServicoTermotubos;
|
|
9
10
|
export declare const TERMO_QUALITY: ServicoTermotubos;
|
|
10
|
-
export declare const TERMO_SELL: ServicoTermotubos;
|
|
11
11
|
export declare const TERMO_STATUS: ServicoTermotubos;
|
|
12
12
|
export declare const TERMO_STUDIO: ServicoTermotubos;
|
|
13
13
|
export declare const TERMO_SUPPORT: ServicoTermotubos;
|
package/dist/base/servicos.js
CHANGED
|
@@ -5,6 +5,7 @@ export const TERMO_AI = {
|
|
|
5
5
|
endereco_no_localhost: null,
|
|
6
6
|
endereco_no_sandbox: "https://sandbox-api-ai.termotubos.com.br",
|
|
7
7
|
endereco_em_production: "https://api-ai.termotubos.com.br",
|
|
8
|
+
ativo: true,
|
|
8
9
|
};
|
|
9
10
|
export const TERMO_AUTH = {
|
|
10
11
|
nome_do_servico: "TermoAuth",
|
|
@@ -12,6 +13,7 @@ export const TERMO_AUTH = {
|
|
|
12
13
|
endereco_no_localhost: "http://localhost:51001",
|
|
13
14
|
endereco_no_sandbox: "https://sandbox-api-auth.termotubos.com.br",
|
|
14
15
|
endereco_em_production: "https://api-auth.termotubos.com.br",
|
|
16
|
+
ativo: true,
|
|
15
17
|
};
|
|
16
18
|
export const TERMO_BUCKET = {
|
|
17
19
|
nome_do_servico: "TermoBucket",
|
|
@@ -19,6 +21,15 @@ export const TERMO_BUCKET = {
|
|
|
19
21
|
endereco_no_localhost: "http://localhost:51121",
|
|
20
22
|
endereco_no_sandbox: "https://sandbox-api-bucket.termotubos.com.br",
|
|
21
23
|
endereco_em_production: "https://api-bucket.termotubos.com.br",
|
|
24
|
+
ativo: true,
|
|
25
|
+
};
|
|
26
|
+
export const TERMO_FLOW = {
|
|
27
|
+
nome_do_servico: "TermoFlow",
|
|
28
|
+
nome_do_modulo: "flow",
|
|
29
|
+
endereco_no_localhost: "http://localhost:51021",
|
|
30
|
+
endereco_no_sandbox: "https://sandbox-api-flow.termotubos.com.br",
|
|
31
|
+
endereco_em_production: "https://api-flow.termotubos.com.br",
|
|
32
|
+
ativo: true,
|
|
22
33
|
};
|
|
23
34
|
export const TERMO_INTRANET = {
|
|
24
35
|
nome_do_servico: "TermoIntranetAPI",
|
|
@@ -26,6 +37,7 @@ export const TERMO_INTRANET = {
|
|
|
26
37
|
endereco_no_localhost: "http://localhost:51091",
|
|
27
38
|
endereco_no_sandbox: "https://sandbox-api-intranet.termotubos.com.br",
|
|
28
39
|
endereco_em_production: "https://api-intranet.termotubos.com.br",
|
|
40
|
+
ativo: true,
|
|
29
41
|
};
|
|
30
42
|
export const TERMO_LEADS = {
|
|
31
43
|
nome_do_servico: "TermoLeads",
|
|
@@ -33,6 +45,7 @@ export const TERMO_LEADS = {
|
|
|
33
45
|
endereco_no_localhost: "http://localhost:51031",
|
|
34
46
|
endereco_no_sandbox: "https://sandbox-api-leads.termotubos.com.br",
|
|
35
47
|
endereco_em_production: "https://api-leads.termotubos.com.br",
|
|
48
|
+
ativo: true,
|
|
36
49
|
};
|
|
37
50
|
export const TERMO_MCP = {
|
|
38
51
|
nome_do_servico: "TermoMCP",
|
|
@@ -40,6 +53,7 @@ export const TERMO_MCP = {
|
|
|
40
53
|
endereco_no_localhost: "http://localhost:51061",
|
|
41
54
|
endereco_no_sandbox: "https://sandbox-api-mcp.termotubos.com.br",
|
|
42
55
|
endereco_em_production: "https://api-mcp.termotubos.com.br",
|
|
56
|
+
ativo: false,
|
|
43
57
|
};
|
|
44
58
|
export const TERMO_PORTAL = {
|
|
45
59
|
nome_do_servico: "TermoPortal",
|
|
@@ -47,6 +61,7 @@ export const TERMO_PORTAL = {
|
|
|
47
61
|
endereco_no_localhost: "http://localhost:51011",
|
|
48
62
|
endereco_no_sandbox: "https://sandbox-api-portal.termotubos.com.br",
|
|
49
63
|
endereco_em_production: "https://api-portal.termotubos.com.br",
|
|
64
|
+
ativo: true,
|
|
50
65
|
};
|
|
51
66
|
export const TERMO_QUALITY = {
|
|
52
67
|
nome_do_servico: "TermoQuality",
|
|
@@ -54,13 +69,7 @@ export const TERMO_QUALITY = {
|
|
|
54
69
|
endereco_no_localhost: "http://localhost:51071",
|
|
55
70
|
endereco_no_sandbox: "https://sandbox-api-quality.termotubos.com.br",
|
|
56
71
|
endereco_em_production: "https://api-quality.termotubos.com.br",
|
|
57
|
-
|
|
58
|
-
export const TERMO_SELL = {
|
|
59
|
-
nome_do_servico: "TermoSell",
|
|
60
|
-
nome_do_modulo: "sell",
|
|
61
|
-
endereco_no_localhost: "http://localhost:51021",
|
|
62
|
-
endereco_no_sandbox: "https://sandbox-api-sell.termotubos.com.br",
|
|
63
|
-
endereco_em_production: "https://api-sell.termotubos.com.br",
|
|
72
|
+
ativo: false,
|
|
64
73
|
};
|
|
65
74
|
export const TERMO_STATUS = {
|
|
66
75
|
nome_do_servico: "TermoStatus",
|
|
@@ -68,6 +77,7 @@ export const TERMO_STATUS = {
|
|
|
68
77
|
endereco_no_localhost: "http://localhost:51131",
|
|
69
78
|
endereco_no_sandbox: "https://sandbox-api-status.termotubos.com.br",
|
|
70
79
|
endereco_em_production: "https://api-status.termotubos.com.br",
|
|
80
|
+
ativo: false,
|
|
71
81
|
};
|
|
72
82
|
export const TERMO_STUDIO = {
|
|
73
83
|
nome_do_servico: "TermoStudio",
|
|
@@ -75,6 +85,7 @@ export const TERMO_STUDIO = {
|
|
|
75
85
|
endereco_no_localhost: null,
|
|
76
86
|
endereco_no_sandbox: "https://sandbox-api-studio.termotubos.com.br",
|
|
77
87
|
endereco_em_production: "https://api-studio.termotubos.com.br",
|
|
88
|
+
ativo: false,
|
|
78
89
|
};
|
|
79
90
|
export const TERMO_SUPPORT = {
|
|
80
91
|
nome_do_servico: "TermoSupport",
|
|
@@ -82,6 +93,7 @@ export const TERMO_SUPPORT = {
|
|
|
82
93
|
endereco_no_localhost: "http://localhost:51051",
|
|
83
94
|
endereco_no_sandbox: "https://sandbox-api-support.termotubos.com.br",
|
|
84
95
|
endereco_em_production: "https://api-support.termotubos.com.br",
|
|
96
|
+
ativo: true,
|
|
85
97
|
};
|
|
86
98
|
export const TERMO_TRACING = {
|
|
87
99
|
nome_do_servico: "TermoTracing",
|
|
@@ -89,6 +101,7 @@ export const TERMO_TRACING = {
|
|
|
89
101
|
endereco_no_localhost: "http://localhost:51111",
|
|
90
102
|
endereco_no_sandbox: "https://sandbox-api-tracing.termotubos.com.br",
|
|
91
103
|
endereco_em_production: "https://api-tracing.termotubos.com.br",
|
|
104
|
+
ativo: true,
|
|
92
105
|
};
|
|
93
106
|
export const TERMO_WEBHOOK = {
|
|
94
107
|
nome_do_servico: "TermoWebhook",
|
|
@@ -96,6 +109,7 @@ export const TERMO_WEBHOOK = {
|
|
|
96
109
|
endereco_no_localhost: "http://localhost:51081",
|
|
97
110
|
endereco_no_sandbox: "https://sandbox-api-webhook.termotubos.com.br",
|
|
98
111
|
endereco_em_production: "https://api-webhook.termotubos.com.br",
|
|
112
|
+
ativo: true,
|
|
99
113
|
};
|
|
100
114
|
export const TERMO_WMS = {
|
|
101
115
|
nome_do_servico: "TermoWMS",
|
|
@@ -103,17 +117,18 @@ export const TERMO_WMS = {
|
|
|
103
117
|
endereco_no_localhost: null,
|
|
104
118
|
endereco_no_sandbox: "https://sandbox-api-wms.termotubos.com.br",
|
|
105
119
|
endereco_em_production: "https://api-wms.termotubos.com.br",
|
|
120
|
+
ativo: false,
|
|
106
121
|
};
|
|
107
122
|
export const TODOS_OS_SERVICOS = [
|
|
108
123
|
TERMO_AI,
|
|
109
124
|
TERMO_AUTH,
|
|
110
125
|
TERMO_BUCKET,
|
|
126
|
+
TERMO_FLOW,
|
|
111
127
|
TERMO_INTRANET,
|
|
112
128
|
TERMO_LEADS,
|
|
113
129
|
TERMO_MCP,
|
|
114
130
|
TERMO_PORTAL,
|
|
115
131
|
TERMO_QUALITY,
|
|
116
|
-
TERMO_SELL,
|
|
117
132
|
TERMO_STATUS,
|
|
118
133
|
TERMO_STUDIO,
|
|
119
134
|
TERMO_SUPPORT,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
2
|
/**
|
|
3
|
-
* Cliente tipado da API do
|
|
3
|
+
* Cliente tipado da API do TermoFlow, gerado a partir do `openapi.json` do serviço.
|
|
4
4
|
*/
|
|
5
5
|
export * from "./tipos.js";
|
|
6
6
|
export * from "./rotas.js";
|
|
@@ -198,6 +198,12 @@ export interface ParametrosDeBuscarAutoCompleteRobo {
|
|
|
198
198
|
pagina?: number;
|
|
199
199
|
tamanho?: number;
|
|
200
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Parâmetros de consulta e de cabeçalho de `/robo/equipes`.
|
|
203
|
+
*/
|
|
204
|
+
export interface ParametrosDeBuscarEquipesRobo {
|
|
205
|
+
robo_id?: string;
|
|
206
|
+
}
|
|
201
207
|
/**
|
|
202
208
|
* Parâmetros de consulta e de cabeçalho de `/robo/filtro`.
|
|
203
209
|
*/
|
|
@@ -391,7 +397,7 @@ export declare function buscar_sincronizacao_cliente(credencial_de_acesso: Crede
|
|
|
391
397
|
/**
|
|
392
398
|
* Inicia a sincronização dos clientes com o TermoIntranetAPI em segundo plano
|
|
393
399
|
*
|
|
394
|
-
* Só para o master do TermoAuth. Percorre toda a lista de clientes do TermoIntranetAPI (`GET /cliente`, paginada por cursor) usando o próprio token de quem chamou e grava aqui: entra todo cliente, pessoa física ou jurídica, com ou sem documento (`cnpj` guarda só os dígitos do CPF ou CNPJ, ou fica vazio); `ignorados` conta só o id repetido na mesma página. Cliente que já existe com o mesmo CNPJ e ainda sem vínculo recebe o `intranet_cliente_id`; cliente já vinculado tem razão social, nome fantasia, telefone (celular, ou telefone fixo na falta dele, só dígitos), e-mail, cidade e estado sobrescritos pela intranet; cliente novo é criado com `atendente_ativo` desligado. Os campos do TermoSell (`ativo
|
|
400
|
+
* Só para o master do TermoAuth. Percorre toda a lista de clientes do TermoIntranetAPI (`GET /cliente`, paginada por cursor) usando o próprio token de quem chamou e grava aqui: entra todo cliente, pessoa física ou jurídica, com ou sem documento (`cnpj` guarda só os dígitos do CPF ou CNPJ, ou fica vazio); `ignorados` conta só o id repetido na mesma página. Cliente que já existe com o mesmo CNPJ e ainda sem vínculo recebe o `intranet_cliente_id`; cliente já vinculado tem razão social, nome fantasia, telefone (celular, ou telefone fixo na falta dele, só dígitos), e-mail, cidade e estado sobrescritos pela intranet; cliente novo é criado com `atendente_ativo` desligado. Os campos do TermoSell (`ativo` e `atendente_ativo`) nunca são tocados. Roda em segundo plano no servidor e grava cada página no banco assim que chega: a tela pode ser fechada. Responde 202 com o status inicial; acompanhe por `GET /cliente/sincronizar`. Sem corpo.
|
|
395
401
|
*
|
|
396
402
|
* `POST /cliente/sincronizar`
|
|
397
403
|
*/
|
|
@@ -479,7 +485,7 @@ export declare function buscar_paginador_config_system_chatwoot(credencial_de_ac
|
|
|
479
485
|
/**
|
|
480
486
|
* Conecta a conta do Chatwoot
|
|
481
487
|
*
|
|
482
|
-
* Exige a permissão `criar` da área `configuracoes`.
|
|
488
|
+
* Exige a permissão `criar` da área `configuracoes`. Aceita quantas contas do Chatwoot forem precisas; o `nome` e o par `endereco` + `conta_id` não se repetem (`409`). `nome` (até 100 caracteres), `endereco` do Chatwoot (`http://` ou `https://`, até 200), `conta_id` (maior que zero), `token_acesso` (de 8 a 200 caracteres) e `endereco_publico` (o endereço `https://` deste backend que o Chatwoot vai chamar, até 200) são obrigatórios. Antes de gravar, cria no Chatwoot o robô de atendimento que avisa o TermoSell das mensagens; se o Chatwoot recusar, responde `400` com o motivo. A configuração nasce ativa. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
|
|
483
489
|
*
|
|
484
490
|
* `POST /config_system_chatwoot`
|
|
485
491
|
*/
|
|
@@ -727,11 +733,11 @@ export declare function buscar_auto_complete_robo(credencial_de_acesso: Credenci
|
|
|
727
733
|
/**
|
|
728
734
|
* Lista as equipes do Chatwoot
|
|
729
735
|
*
|
|
730
|
-
* Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora
|
|
736
|
+
* Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora as equipes (id e nome) de uma conta do Chatwoot ativa, para escolher a `equipe_id` da etapa `atendimento` ou do `gatilho` do fluxo. Com `robo_id`, usa a conta do Chatwoot dos números de WhatsApp (Z-API ou QR Code) ligados a esse robô; sem `robo_id` ou sem número ligado, usa a primeira conta ativa.
|
|
731
737
|
*
|
|
732
738
|
* `GET /robo/equipes`
|
|
733
739
|
*/
|
|
734
|
-
export declare function buscar_equipes_robo(credencial_de_acesso: CredencialDeAcesso, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.EquipeChatwoot>>;
|
|
740
|
+
export declare function buscar_equipes_robo(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarEquipesRobo, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.EquipeChatwoot>>;
|
|
735
741
|
/**
|
|
736
742
|
* Busca robôs por filtro
|
|
737
743
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
2
|
import { chamar_servico, codificar_parametro_de_caminho } from "../base/requisicao.js";
|
|
3
|
-
import {
|
|
3
|
+
import { TERMO_FLOW as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
4
4
|
/**
|
|
5
5
|
* Versão do backend no ar
|
|
6
6
|
*
|
|
@@ -236,7 +236,7 @@ export function buscar_sincronizacao_cliente(credencial_de_acesso, opcoes_da_cha
|
|
|
236
236
|
/**
|
|
237
237
|
* Inicia a sincronização dos clientes com o TermoIntranetAPI em segundo plano
|
|
238
238
|
*
|
|
239
|
-
* Só para o master do TermoAuth. Percorre toda a lista de clientes do TermoIntranetAPI (`GET /cliente`, paginada por cursor) usando o próprio token de quem chamou e grava aqui: entra todo cliente, pessoa física ou jurídica, com ou sem documento (`cnpj` guarda só os dígitos do CPF ou CNPJ, ou fica vazio); `ignorados` conta só o id repetido na mesma página. Cliente que já existe com o mesmo CNPJ e ainda sem vínculo recebe o `intranet_cliente_id`; cliente já vinculado tem razão social, nome fantasia, telefone (celular, ou telefone fixo na falta dele, só dígitos), e-mail, cidade e estado sobrescritos pela intranet; cliente novo é criado com `atendente_ativo` desligado. Os campos do TermoSell (`ativo
|
|
239
|
+
* Só para o master do TermoAuth. Percorre toda a lista de clientes do TermoIntranetAPI (`GET /cliente`, paginada por cursor) usando o próprio token de quem chamou e grava aqui: entra todo cliente, pessoa física ou jurídica, com ou sem documento (`cnpj` guarda só os dígitos do CPF ou CNPJ, ou fica vazio); `ignorados` conta só o id repetido na mesma página. Cliente que já existe com o mesmo CNPJ e ainda sem vínculo recebe o `intranet_cliente_id`; cliente já vinculado tem razão social, nome fantasia, telefone (celular, ou telefone fixo na falta dele, só dígitos), e-mail, cidade e estado sobrescritos pela intranet; cliente novo é criado com `atendente_ativo` desligado. Os campos do TermoSell (`ativo` e `atendente_ativo`) nunca são tocados. Roda em segundo plano no servidor e grava cada página no banco assim que chega: a tela pode ser fechada. Responde 202 com o status inicial; acompanhe por `GET /cliente/sincronizar`. Sem corpo.
|
|
240
240
|
*
|
|
241
241
|
* `POST /cliente/sincronizar`
|
|
242
242
|
*/
|
|
@@ -418,7 +418,7 @@ export function buscar_paginador_config_system_chatwoot(credencial_de_acesso, pa
|
|
|
418
418
|
/**
|
|
419
419
|
* Conecta a conta do Chatwoot
|
|
420
420
|
*
|
|
421
|
-
* Exige a permissão `criar` da área `configuracoes`.
|
|
421
|
+
* Exige a permissão `criar` da área `configuracoes`. Aceita quantas contas do Chatwoot forem precisas; o `nome` e o par `endereco` + `conta_id` não se repetem (`409`). `nome` (até 100 caracteres), `endereco` do Chatwoot (`http://` ou `https://`, até 200), `conta_id` (maior que zero), `token_acesso` (de 8 a 200 caracteres) e `endereco_publico` (o endereço `https://` deste backend que o Chatwoot vai chamar, até 200) são obrigatórios. Antes de gravar, cria no Chatwoot o robô de atendimento que avisa o TermoSell das mensagens; se o Chatwoot recusar, responde `400` com o motivo. A configuração nasce ativa. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
|
|
422
422
|
*
|
|
423
423
|
* `POST /config_system_chatwoot`
|
|
424
424
|
*/
|
|
@@ -934,16 +934,17 @@ export function buscar_auto_complete_robo(credencial_de_acesso, parametros = {},
|
|
|
934
934
|
/**
|
|
935
935
|
* Lista as equipes do Chatwoot
|
|
936
936
|
*
|
|
937
|
-
* Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora
|
|
937
|
+
* Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora as equipes (id e nome) de uma conta do Chatwoot ativa, para escolher a `equipe_id` da etapa `atendimento` ou do `gatilho` do fluxo. Com `robo_id`, usa a conta do Chatwoot dos números de WhatsApp (Z-API ou QR Code) ligados a esse robô; sem `robo_id` ou sem número ligado, usa a primeira conta ativa.
|
|
938
938
|
*
|
|
939
939
|
* `GET /robo/equipes`
|
|
940
940
|
*/
|
|
941
|
-
export function buscar_equipes_robo(credencial_de_acesso, opcoes_da_chamada) {
|
|
941
|
+
export function buscar_equipes_robo(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
942
942
|
return chamar_servico({
|
|
943
943
|
servico: SERVICO_DESTA_API,
|
|
944
944
|
metodo_http: "GET",
|
|
945
945
|
caminho_da_rota: "/robo/equipes",
|
|
946
946
|
credencial_de_acesso,
|
|
947
|
+
parametros_de_consulta: parametros,
|
|
947
948
|
formato_da_resposta: "json",
|
|
948
949
|
}, opcoes_da_chamada);
|
|
949
950
|
}
|
|
@@ -54,7 +54,6 @@ export interface Cliente {
|
|
|
54
54
|
atendente_ativo: boolean;
|
|
55
55
|
ativo: boolean;
|
|
56
56
|
atualizado_em: string;
|
|
57
|
-
chatwoot_contato_id?: number | null;
|
|
58
57
|
cidade?: string | null;
|
|
59
58
|
cnpj: string;
|
|
60
59
|
criado_em: string;
|
|
@@ -352,7 +351,6 @@ export interface PaginaClienteItensItem {
|
|
|
352
351
|
atendente_ativo: boolean;
|
|
353
352
|
ativo: boolean;
|
|
354
353
|
atualizado_em: string;
|
|
355
|
-
chatwoot_contato_id?: number | null;
|
|
356
354
|
cidade?: string | null;
|
|
357
355
|
cnpj: string;
|
|
358
356
|
criado_em: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ export * from "./base/index.js";
|
|
|
2
2
|
export * as ai from "./ai/index.js";
|
|
3
3
|
export * as auth from "./auth/index.js";
|
|
4
4
|
export * as bucket from "./bucket/index.js";
|
|
5
|
+
export * as flow from "./flow/index.js";
|
|
5
6
|
export * as intranet from "./intranet/index.js";
|
|
6
7
|
export * as leads from "./leads/index.js";
|
|
7
8
|
export * as mcp from "./mcp/index.js";
|
|
8
9
|
export * as portal from "./portal/index.js";
|
|
9
10
|
export * as quality from "./quality/index.js";
|
|
10
|
-
export * as sell from "./sell/index.js";
|
|
11
11
|
export * as status from "./status/index.js";
|
|
12
12
|
export * as studio from "./studio/index.js";
|
|
13
13
|
export * as support from "./support/index.js";
|
package/dist/index.js
CHANGED
|
@@ -3,12 +3,12 @@ export * from "./base/index.js";
|
|
|
3
3
|
export * as ai from "./ai/index.js";
|
|
4
4
|
export * as auth from "./auth/index.js";
|
|
5
5
|
export * as bucket from "./bucket/index.js";
|
|
6
|
+
export * as flow from "./flow/index.js";
|
|
6
7
|
export * as intranet from "./intranet/index.js";
|
|
7
8
|
export * as leads from "./leads/index.js";
|
|
8
9
|
export * as mcp from "./mcp/index.js";
|
|
9
10
|
export * as portal from "./portal/index.js";
|
|
10
11
|
export * as quality from "./quality/index.js";
|
|
11
|
-
export * as sell from "./sell/index.js";
|
|
12
12
|
export * as status from "./status/index.js";
|
|
13
13
|
export * as studio from "./studio/index.js";
|
|
14
14
|
export * as support from "./support/index.js";
|
package/dist/portal/rotas.d.ts
CHANGED
|
@@ -156,53 +156,6 @@ export interface ParametrosDeBuscarInformacoesPaginadorCliente {
|
|
|
156
156
|
unidade_id?: string;
|
|
157
157
|
cursor?: string;
|
|
158
158
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Parâmetros de consulta e de cabeçalho de `/colaborador`.
|
|
161
|
-
*/
|
|
162
|
-
export interface ParametrosDeBuscarPaginadorColaborador {
|
|
163
|
-
pagina?: number;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Parâmetros de consulta e de cabeçalho de `/colaborador/autocomplete`.
|
|
167
|
-
*/
|
|
168
|
-
export interface ParametrosDeBuscarAutoCompleteColaborador {
|
|
169
|
-
busca?: string;
|
|
170
|
-
status?: string;
|
|
171
|
-
pagina?: number;
|
|
172
|
-
tamanho?: number;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Parâmetros de consulta e de cabeçalho de `/colaborador/filtro`.
|
|
176
|
-
*/
|
|
177
|
-
export interface ParametrosDeBuscarPeloFiltroColaborador {
|
|
178
|
-
nome?: string;
|
|
179
|
-
email?: string;
|
|
180
|
-
status?: string;
|
|
181
|
-
perfil_id?: string;
|
|
182
|
-
pagina?: number;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Parâmetros de consulta e de cabeçalho de `/configuracao`.
|
|
186
|
-
*/
|
|
187
|
-
export interface ParametrosDeBuscarPaginadorConfiguracao {
|
|
188
|
-
pagina?: number;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Parâmetros de consulta e de cabeçalho de `/configuracao/autocomplete`.
|
|
192
|
-
*/
|
|
193
|
-
export interface ParametrosDeBuscarAutoCompleteConfiguracao {
|
|
194
|
-
busca?: string;
|
|
195
|
-
pagina?: number;
|
|
196
|
-
tamanho?: number;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Parâmetros de consulta e de cabeçalho de `/configuracao/filtro`.
|
|
200
|
-
*/
|
|
201
|
-
export interface ParametrosDeBuscarPeloFiltroConfiguracao {
|
|
202
|
-
chave?: string;
|
|
203
|
-
prefixo?: string;
|
|
204
|
-
pagina?: number;
|
|
205
|
-
}
|
|
206
159
|
/**
|
|
207
160
|
* Parâmetros de consulta e de cabeçalho de `/contato`.
|
|
208
161
|
*/
|
|
@@ -586,8 +539,6 @@ export interface ParametrosDeBuscarPaginadorProduto {
|
|
|
586
539
|
enriquecido?: boolean;
|
|
587
540
|
unidade?: string;
|
|
588
541
|
cor?: string;
|
|
589
|
-
material?: string;
|
|
590
|
-
diametro?: string;
|
|
591
542
|
categoria_tiny?: string;
|
|
592
543
|
marca_tiny?: string;
|
|
593
544
|
criado_desde?: string;
|
|
@@ -630,8 +581,6 @@ export interface ParametrosDeBuscarPeloFiltroProduto {
|
|
|
630
581
|
enriquecido?: boolean;
|
|
631
582
|
unidade?: string;
|
|
632
583
|
cor?: string;
|
|
633
|
-
material?: string;
|
|
634
|
-
diametro?: string;
|
|
635
584
|
categoria_tiny?: string;
|
|
636
585
|
marca_tiny?: string;
|
|
637
586
|
criado_desde?: string;
|
|
@@ -788,14 +737,6 @@ export interface ParametrosDeBuscarPeloFiltroUnidade {
|
|
|
788
737
|
cliente_id?: string;
|
|
789
738
|
pagina?: number;
|
|
790
739
|
}
|
|
791
|
-
/**
|
|
792
|
-
* Versão da API
|
|
793
|
-
*
|
|
794
|
-
* Rota pública: não exige sessão. Confere se a API está no ar e devolve a versão publicada do backend.
|
|
795
|
-
*
|
|
796
|
-
* `GET /`
|
|
797
|
-
*/
|
|
798
|
-
export declare function buscar_pelo_id_versao(opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.VersaoDaApi>;
|
|
799
740
|
/**
|
|
800
741
|
* Envia um arquivo (imagem ou PDF de boletim)
|
|
801
742
|
*
|
|
@@ -1116,134 +1057,6 @@ export declare function atualizar_pelo_id_cliente(credencial_de_acesso: Credenci
|
|
|
1116
1057
|
* `DELETE /cliente/{id}`
|
|
1117
1058
|
*/
|
|
1118
1059
|
export declare function deletar_pelo_id_cliente(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
1119
|
-
/**
|
|
1120
|
-
* Lista colaboradores paginados
|
|
1121
|
-
*
|
|
1122
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno.
|
|
1123
|
-
*
|
|
1124
|
-
* `GET /colaborador`
|
|
1125
|
-
*/
|
|
1126
|
-
export declare function buscar_paginador_colaborador(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPaginadorColaborador, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaColaborador>;
|
|
1127
|
-
/**
|
|
1128
|
-
* Cadastra o colaborador
|
|
1129
|
-
*
|
|
1130
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno com `usuarios.gerenciar`. `perfil_id` de colaborador (sem ele vale o perfil `acesso-inicial`, só leitura); só administrador atribui perfil de administrador.
|
|
1131
|
-
*
|
|
1132
|
-
* `POST /colaborador`
|
|
1133
|
-
*/
|
|
1134
|
-
export declare function criar_colaborador(credencial_de_acesso: CredencialDeAcesso, corpo_da_requisicao: tipos.ColaboradorCriar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Colaborador>;
|
|
1135
|
-
/**
|
|
1136
|
-
* Lista básica de colaboradores para seleção
|
|
1137
|
-
*
|
|
1138
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno. Devolve id, nome e e-mail em ordem alfabética; `busca` procura no nome e no e-mail; `tamanho` de 1 a 50 (padrão 10).
|
|
1139
|
-
*
|
|
1140
|
-
* `GET /colaborador/autocomplete`
|
|
1141
|
-
*/
|
|
1142
|
-
export declare function buscar_auto_complete_colaborador(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarAutoCompleteColaborador, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaColaboradorAutoComplete>;
|
|
1143
|
-
/**
|
|
1144
|
-
* Busca colaboradores por filtro
|
|
1145
|
-
*
|
|
1146
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno. Até 50 por página (`pagina`, a partir de 1, padrão 1), em ordem alfabética; `nome` e `email` procuram o trecho, os demais são exatos.
|
|
1147
|
-
*
|
|
1148
|
-
* `GET /colaborador/filtro`
|
|
1149
|
-
*/
|
|
1150
|
-
export declare function buscar_pelo_filtro_colaborador(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPeloFiltroColaborador, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.Colaborador>>;
|
|
1151
|
-
/**
|
|
1152
|
-
* Busca o colaborador pelo id
|
|
1153
|
-
*
|
|
1154
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno.
|
|
1155
|
-
*
|
|
1156
|
-
* `GET /colaborador/{id}`
|
|
1157
|
-
*/
|
|
1158
|
-
export declare function buscar_pelo_id_colaborador(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Colaborador>;
|
|
1159
|
-
/**
|
|
1160
|
-
* Atualiza o colaborador
|
|
1161
|
-
*
|
|
1162
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Atualização parcial. Exige colaborador interno com `usuarios.gerenciar`; o próprio colaborador só altera nome, telefone, cargo e `presente` (heartbeat que grava `ultimo_acesso_em`).
|
|
1163
|
-
*
|
|
1164
|
-
* `PATCH /colaborador/{id}`
|
|
1165
|
-
*/
|
|
1166
|
-
export declare function atualizar_pelo_id_colaborador(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ColaboradorAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Colaborador>;
|
|
1167
|
-
/**
|
|
1168
|
-
* Exclui o colaborador
|
|
1169
|
-
*
|
|
1170
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno com `usuarios.gerenciar`. Exclusão lógica.
|
|
1171
|
-
*
|
|
1172
|
-
* `DELETE /colaborador/{id}`
|
|
1173
|
-
*/
|
|
1174
|
-
export declare function deletar_pelo_id_colaborador(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
1175
|
-
/**
|
|
1176
|
-
* Lista as configurações paginadas
|
|
1177
|
-
*
|
|
1178
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Ordem de chave. Paginado com 50 itens por página (fixo); `pagina` começa em 1 (padrão 1). A resposta traz `itens`, `total` (registros que casam), `pagina` e `tamanho`.
|
|
1179
|
-
*
|
|
1180
|
-
* `GET /configuracao`
|
|
1181
|
-
*/
|
|
1182
|
-
export declare function buscar_paginador_configuracao(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPaginadorConfiguracao, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaConfiguracao>;
|
|
1183
|
-
/**
|
|
1184
|
-
* Grava uma configuração do portal
|
|
1185
|
-
*
|
|
1186
|
-
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Configuração chave/valor do portal (vitrine). `chave` precisa ser uma das chaves conhecidas (ex.: `produtos_mostrar_preco`) e `valor` (texto) segue o tipo da chave: booleano `true`/`false`, hora `HH:MM`, decimal ou texto com limite. Cada chave existe uma vez só.
|
|
1187
|
-
*
|
|
1188
|
-
* `POST /configuracao`
|
|
1189
|
-
*/
|
|
1190
|
-
export declare function criar_configuracao(credencial_de_acesso: CredencialDeAcesso, corpo_da_requisicao: tipos.ConfiguracaoCriar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Configuracao>;
|
|
1191
|
-
/**
|
|
1192
|
-
* Lista básica de configurações para seleção
|
|
1193
|
-
*
|
|
1194
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve só id e chave, em ordem de chave. `busca` procura o trecho na chave. `tamanho` tem padrão 10 e vai de 1 a 50; `pagina` começa em 1. A resposta traz `itens`, `total`, `pagina` e `tamanho`.
|
|
1195
|
-
*
|
|
1196
|
-
* `GET /configuracao/autocomplete`
|
|
1197
|
-
*/
|
|
1198
|
-
export declare function buscar_auto_complete_configuracao(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarAutoCompleteConfiguracao, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaConfiguracaoAutoComplete>;
|
|
1199
|
-
/**
|
|
1200
|
-
* Busca configurações por filtro
|
|
1201
|
-
*
|
|
1202
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve as configurações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), em ordem de chave. `chave` é exata; `prefixo` pega as chaves que começam com o texto (ex.: `produtos_`).
|
|
1203
|
-
*
|
|
1204
|
-
* `GET /configuracao/filtro`
|
|
1205
|
-
*/
|
|
1206
|
-
export declare function buscar_pelo_filtro_configuracao(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPeloFiltroConfiguracao, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.Configuracao>>;
|
|
1207
|
-
/**
|
|
1208
|
-
* Busca uma configuração pelo id
|
|
1209
|
-
*
|
|
1210
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Configuração excluída não é encontrada.
|
|
1211
|
-
*
|
|
1212
|
-
* `GET /configuracao/{id}`
|
|
1213
|
-
*/
|
|
1214
|
-
export declare function buscar_pelo_id_configuracao(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Configuracao>;
|
|
1215
|
-
/**
|
|
1216
|
-
* Atualiza o valor de uma configuração
|
|
1217
|
-
*
|
|
1218
|
-
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Troca o `valor`, validado pelo tipo da chave.
|
|
1219
|
-
*
|
|
1220
|
-
* `PATCH /configuracao/{id}`
|
|
1221
|
-
*/
|
|
1222
|
-
export declare function atualizar_pelo_id_configuracao(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ConfiguracaoAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Configuracao>;
|
|
1223
|
-
/**
|
|
1224
|
-
* Exclui uma configuração
|
|
1225
|
-
*
|
|
1226
|
-
* Exige a permissão `excluir` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). A exclusão é lógica: o registro some das leituras, mas a linha não é apagada.
|
|
1227
|
-
*
|
|
1228
|
-
* `DELETE /configuracao/{id}`
|
|
1229
|
-
*/
|
|
1230
|
-
export declare function deletar_pelo_id_configuracao(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
1231
|
-
/**
|
|
1232
|
-
* Mostra a situação do segredo do app gerado no TermoAuth
|
|
1233
|
-
*
|
|
1234
|
-
* Só um master do TermoAuth (e-mail `@termotubos.com.br`) lê. Nunca devolve o valor: `segredo_do_app_gerado_no_termo_auth` traz só `configurado` e o final mascarado (`final_visivel`). `criptografia_disponivel` é falso quando o servidor está sem a `GLOBAL_SECRET_CRIPTOGRAFIA`; nesse caso o segredo aparece como não configurado.
|
|
1235
|
-
*
|
|
1236
|
-
* `GET /configuracao_provedor`
|
|
1237
|
-
*/
|
|
1238
|
-
export declare function buscar_pelo_id_configuracao_provedor(credencial_de_acesso: CredencialDeAcesso, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.ConfiguracaoProvedor>;
|
|
1239
|
-
/**
|
|
1240
|
-
* Grava ou limpa o segredo do app gerado no TermoAuth
|
|
1241
|
-
*
|
|
1242
|
-
* Só um master do TermoAuth (e-mail `@termotubos.com.br`) grava. O segredo do app `portal-b2b` é guardado cifrado (AES-256-GCM com a `GLOBAL_SECRET_CRIPTOGRAFIA`) e entregue na hora ao `termo_core`, sem deploy. Campo ausente não muda nada, texto troca o segredo e `null` (ou texto vazio) limpa. No máximo 2.000 caracteres, sem quebra de linha.
|
|
1243
|
-
*
|
|
1244
|
-
* `PATCH /configuracao_provedor`
|
|
1245
|
-
*/
|
|
1246
|
-
export declare function atualizar_pelo_id_configuracao_provedor(credencial_de_acesso: CredencialDeAcesso, corpo_da_requisicao: tipos.ConfiguracaoProvedorAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.ConfiguracaoProvedor>;
|
|
1247
1060
|
/**
|
|
1248
1061
|
* Lista os contatos paginados
|
|
1249
1062
|
*
|
|
@@ -1767,7 +1580,7 @@ export declare function deletar_pelo_id_perfil(credencial_de_acesso: CredencialD
|
|
|
1767
1580
|
/**
|
|
1768
1581
|
* Lista os produtos paginados
|
|
1769
1582
|
*
|
|
1770
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `
|
|
1583
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `categoria_tiny` e `marca_tiny` procuram o trecho; `criado_desde`/`criado_ate` e `atualizado_desde`/`atualizado_ate` são datas AAAA-MM-DD inclusivas. Para quem não é colaborador interno, os dados do Tiny vêm vazios. Paginado com 50 itens por página (fixo); `pagina` começa em 1 (padrão 1). A resposta traz `itens`, `total` (registros que casam), `pagina` e `tamanho`. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1771
1584
|
*
|
|
1772
1585
|
* `GET /produto`
|
|
1773
1586
|
*/
|
|
@@ -1775,7 +1588,7 @@ export declare function buscar_paginador_produto(credencial_de_acesso: Credencia
|
|
|
1775
1588
|
/**
|
|
1776
1589
|
* Cadastra um produto
|
|
1777
1590
|
*
|
|
1778
|
-
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Produto do catálogo. `sku` até 32 letras, números, ponto, hífen e `_`, único; `nome` de 2 a 200 caracteres; `preco` e `preco_a_vista` maiores que zero (à vista não maior que o base); `unidade` de venda obrigatória; `estoque` não negativo; `incremento_minimo` e `quantidade_minima` maiores que zero; até 15 `imagens` (URLs; a primeira é a principal). Campos: `
|
|
1591
|
+
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Produto do catálogo. `sku` até 32 letras, números, ponto, hífen e `_`, único; `nome` de 2 a 200 caracteres; `preco` e `preco_a_vista` maiores que zero (à vista não maior que o base); `unidade` de venda obrigatória; `estoque` não negativo; `incremento_minimo` e `quantidade_minima` maiores que zero; até 15 `imagens` (URLs; a primeira é a principal). Campos: `embalagem` é o texto da embalagem de venda; `unidade_medida` é a unidade das quantidades (ex.: `m`, `un`); `embalagem_rotulo` é o nome da embalagem fechada (ex.: caixa); `embalagem_quantidade` é quantas unidades vêm na embalagem fechada (não negativa); `embalagem_preco` é o preço da embalagem fechada (não negativo); `cor` é atributo em texto; `lancamento` (booleano) marca o produto como lançamento; `relevancia` (inteiro) ordena a vitrine, da maior para a menor; `descricao` é o texto longo da vitrine (até 5000 caracteres); `especificacoes_texto` é a ficha técnica em texto (até 5000 caracteres); `outras_informacoes` é texto livre extra (até 2000 caracteres); `demonstracao` (booleano) marca produto de demonstração; `importado_da_api` (booleano) marca produto vindo do Tiny; `heuristica_pendente` é a lista de campos que ainda precisam de revisão manual.
|
|
1779
1592
|
*
|
|
1780
1593
|
* `POST /produto`
|
|
1781
1594
|
*/
|
|
@@ -1791,7 +1604,7 @@ export declare function buscar_auto_complete_produto(credencial_de_acesso: Crede
|
|
|
1791
1604
|
/**
|
|
1792
1605
|
* Busca produtos por filtro
|
|
1793
1606
|
*
|
|
1794
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os produtos não excluídos que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `
|
|
1607
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os produtos não excluídos que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `categoria_tiny` e `marca_tiny` procuram o trecho; `criado_desde`/`criado_ate` e `atualizado_desde`/`atualizado_ate` são datas AAAA-MM-DD inclusivas. Para quem não é colaborador interno, os dados do Tiny vêm vazios. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1795
1608
|
*
|
|
1796
1609
|
* `GET /produto/filtro`
|
|
1797
1610
|
*/
|
|
@@ -1807,7 +1620,7 @@ export declare function buscar_pelo_id_produto(credencial_de_acesso: CredencialD
|
|
|
1807
1620
|
/**
|
|
1808
1621
|
* Atualiza um produto
|
|
1809
1622
|
*
|
|
1810
|
-
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Mesmas validações do cadastro (o SKU não muda). `embalagem_quantidade` e `embalagem_preco` aceitam `null` para apagar. Produto do Tiny não aceita `preco` nem `preco_a_vista` (400): o preço próprio do portal vai em `preco_portal_b2b`, maior que zero e até o preço a prazo do Tiny, e vira o preço à vista usado no portal; `null` apaga e o preço à vista volta ao do Tiny. A sincronização com o Tiny nunca muda o `preco_portal_b2b`. Produto que não veio do Tiny não aceita `preco_portal_b2b` (400). Atualização parcial: campo ausente mantém o valor atual. Campos: `nome` de 2 a 200 caracteres; `
|
|
1623
|
+
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Mesmas validações do cadastro (o SKU não muda). `embalagem_quantidade` e `embalagem_preco` aceitam `null` para apagar. Produto do Tiny não aceita `preco` nem `preco_a_vista` (400): o preço próprio do portal vai em `preco_portal_b2b`, maior que zero e até o preço a prazo do Tiny, e vira o preço à vista usado no portal; `null` apaga e o preço à vista volta ao do Tiny. A sincronização com o Tiny nunca muda o `preco_portal_b2b`. Produto que não veio do Tiny não aceita `preco_portal_b2b` (400). Atualização parcial: campo ausente mantém o valor atual. Campos: `nome` de 2 a 200 caracteres; `unidade` é a unidade de venda (obrigatória quando enviada); `embalagem` é o texto da embalagem de venda; `unidade_medida` é a unidade das quantidades (ex.: `m`, `un`); `embalagem_rotulo` é o nome da embalagem fechada (ex.: caixa); `incremento_minimo` maior que zero; `cor` é atributo em texto; `lancamento` (booleano) marca o produto como lançamento; `relevancia` (inteiro) ordena a vitrine, da maior para a menor; `imagens` até 15 URLs, sem itens vazios; `descricao` é o texto longo da vitrine (até 5000 caracteres); `especificacoes_texto` é a ficha técnica em texto (até 5000 caracteres); `outras_informacoes` é texto livre extra (até 2000 caracteres); `heuristica_pendente` é a lista de campos que ainda precisam de revisão manual. `nome_comercial` é o nome mostrado ao cliente e `resumo_caracteristicas` a linha curta de características do card; os dois aceitam texto ou `null` para limpar (vazio também limpa).
|
|
1811
1624
|
*
|
|
1812
1625
|
* `PATCH /produto/{id}`
|
|
1813
1626
|
*/
|
package/dist/portal/rotas.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
2
|
import { chamar_servico, codificar_parametro_de_caminho } from "../base/requisicao.js";
|
|
3
3
|
import { TERMO_PORTAL as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
4
|
-
/**
|
|
5
|
-
* Versão da API
|
|
6
|
-
*
|
|
7
|
-
* Rota pública: não exige sessão. Confere se a API está no ar e devolve a versão publicada do backend.
|
|
8
|
-
*
|
|
9
|
-
* `GET /`
|
|
10
|
-
*/
|
|
11
|
-
export function buscar_pelo_id_versao(opcoes_da_chamada) {
|
|
12
|
-
return chamar_servico({
|
|
13
|
-
servico: SERVICO_DESTA_API,
|
|
14
|
-
metodo_http: "GET",
|
|
15
|
-
caminho_da_rota: "/",
|
|
16
|
-
formato_da_resposta: "json",
|
|
17
|
-
}, opcoes_da_chamada);
|
|
18
|
-
}
|
|
19
4
|
/**
|
|
20
5
|
* Envia um arquivo (imagem ou PDF de boletim)
|
|
21
6
|
*
|
|
@@ -685,273 +670,6 @@ export function deletar_pelo_id_cliente(credencial_de_acesso, id, opcoes_da_cham
|
|
|
685
670
|
formato_da_resposta: "sem_conteudo",
|
|
686
671
|
}, opcoes_da_chamada);
|
|
687
672
|
}
|
|
688
|
-
/**
|
|
689
|
-
* Lista colaboradores paginados
|
|
690
|
-
*
|
|
691
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno.
|
|
692
|
-
*
|
|
693
|
-
* `GET /colaborador`
|
|
694
|
-
*/
|
|
695
|
-
export function buscar_paginador_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
696
|
-
return chamar_servico({
|
|
697
|
-
servico: SERVICO_DESTA_API,
|
|
698
|
-
metodo_http: "GET",
|
|
699
|
-
caminho_da_rota: "/colaborador",
|
|
700
|
-
credencial_de_acesso,
|
|
701
|
-
parametros_de_consulta: parametros,
|
|
702
|
-
formato_da_resposta: "json",
|
|
703
|
-
}, opcoes_da_chamada);
|
|
704
|
-
}
|
|
705
|
-
/**
|
|
706
|
-
* Cadastra o colaborador
|
|
707
|
-
*
|
|
708
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno com `usuarios.gerenciar`. `perfil_id` de colaborador (sem ele vale o perfil `acesso-inicial`, só leitura); só administrador atribui perfil de administrador.
|
|
709
|
-
*
|
|
710
|
-
* `POST /colaborador`
|
|
711
|
-
*/
|
|
712
|
-
export function criar_colaborador(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
|
|
713
|
-
return chamar_servico({
|
|
714
|
-
servico: SERVICO_DESTA_API,
|
|
715
|
-
metodo_http: "POST",
|
|
716
|
-
caminho_da_rota: "/colaborador",
|
|
717
|
-
credencial_de_acesso,
|
|
718
|
-
corpo_json: corpo_da_requisicao,
|
|
719
|
-
formato_da_resposta: "json",
|
|
720
|
-
}, opcoes_da_chamada);
|
|
721
|
-
}
|
|
722
|
-
/**
|
|
723
|
-
* Lista básica de colaboradores para seleção
|
|
724
|
-
*
|
|
725
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno. Devolve id, nome e e-mail em ordem alfabética; `busca` procura no nome e no e-mail; `tamanho` de 1 a 50 (padrão 10).
|
|
726
|
-
*
|
|
727
|
-
* `GET /colaborador/autocomplete`
|
|
728
|
-
*/
|
|
729
|
-
export function buscar_auto_complete_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
730
|
-
return chamar_servico({
|
|
731
|
-
servico: SERVICO_DESTA_API,
|
|
732
|
-
metodo_http: "GET",
|
|
733
|
-
caminho_da_rota: "/colaborador/autocomplete",
|
|
734
|
-
credencial_de_acesso,
|
|
735
|
-
parametros_de_consulta: parametros,
|
|
736
|
-
formato_da_resposta: "json",
|
|
737
|
-
}, opcoes_da_chamada);
|
|
738
|
-
}
|
|
739
|
-
/**
|
|
740
|
-
* Busca colaboradores por filtro
|
|
741
|
-
*
|
|
742
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno. Até 50 por página (`pagina`, a partir de 1, padrão 1), em ordem alfabética; `nome` e `email` procuram o trecho, os demais são exatos.
|
|
743
|
-
*
|
|
744
|
-
* `GET /colaborador/filtro`
|
|
745
|
-
*/
|
|
746
|
-
export function buscar_pelo_filtro_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
747
|
-
return chamar_servico({
|
|
748
|
-
servico: SERVICO_DESTA_API,
|
|
749
|
-
metodo_http: "GET",
|
|
750
|
-
caminho_da_rota: "/colaborador/filtro",
|
|
751
|
-
credencial_de_acesso,
|
|
752
|
-
parametros_de_consulta: parametros,
|
|
753
|
-
formato_da_resposta: "json",
|
|
754
|
-
}, opcoes_da_chamada);
|
|
755
|
-
}
|
|
756
|
-
/**
|
|
757
|
-
* Busca o colaborador pelo id
|
|
758
|
-
*
|
|
759
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno.
|
|
760
|
-
*
|
|
761
|
-
* `GET /colaborador/{id}`
|
|
762
|
-
*/
|
|
763
|
-
export function buscar_pelo_id_colaborador(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
764
|
-
return chamar_servico({
|
|
765
|
-
servico: SERVICO_DESTA_API,
|
|
766
|
-
metodo_http: "GET",
|
|
767
|
-
caminho_da_rota: `/colaborador/${codificar_parametro_de_caminho(id)}`,
|
|
768
|
-
credencial_de_acesso,
|
|
769
|
-
formato_da_resposta: "json",
|
|
770
|
-
}, opcoes_da_chamada);
|
|
771
|
-
}
|
|
772
|
-
/**
|
|
773
|
-
* Atualiza o colaborador
|
|
774
|
-
*
|
|
775
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Atualização parcial. Exige colaborador interno com `usuarios.gerenciar`; o próprio colaborador só altera nome, telefone, cargo e `presente` (heartbeat que grava `ultimo_acesso_em`).
|
|
776
|
-
*
|
|
777
|
-
* `PATCH /colaborador/{id}`
|
|
778
|
-
*/
|
|
779
|
-
export function atualizar_pelo_id_colaborador(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
780
|
-
return chamar_servico({
|
|
781
|
-
servico: SERVICO_DESTA_API,
|
|
782
|
-
metodo_http: "PATCH",
|
|
783
|
-
caminho_da_rota: `/colaborador/${codificar_parametro_de_caminho(id)}`,
|
|
784
|
-
credencial_de_acesso,
|
|
785
|
-
corpo_json: corpo_da_requisicao,
|
|
786
|
-
formato_da_resposta: "json",
|
|
787
|
-
}, opcoes_da_chamada);
|
|
788
|
-
}
|
|
789
|
-
/**
|
|
790
|
-
* Exclui o colaborador
|
|
791
|
-
*
|
|
792
|
-
* Colaborador é o usuário da Termotubos: entra pela área `/painel` e também pode abrir o `/app`. Exige colaborador interno com `usuarios.gerenciar`. Exclusão lógica.
|
|
793
|
-
*
|
|
794
|
-
* `DELETE /colaborador/{id}`
|
|
795
|
-
*/
|
|
796
|
-
export function deletar_pelo_id_colaborador(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
797
|
-
return chamar_servico({
|
|
798
|
-
servico: SERVICO_DESTA_API,
|
|
799
|
-
metodo_http: "DELETE",
|
|
800
|
-
caminho_da_rota: `/colaborador/${codificar_parametro_de_caminho(id)}`,
|
|
801
|
-
credencial_de_acesso,
|
|
802
|
-
formato_da_resposta: "sem_conteudo",
|
|
803
|
-
}, opcoes_da_chamada);
|
|
804
|
-
}
|
|
805
|
-
/**
|
|
806
|
-
* Lista as configurações paginadas
|
|
807
|
-
*
|
|
808
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Ordem de chave. Paginado com 50 itens por página (fixo); `pagina` começa em 1 (padrão 1). A resposta traz `itens`, `total` (registros que casam), `pagina` e `tamanho`.
|
|
809
|
-
*
|
|
810
|
-
* `GET /configuracao`
|
|
811
|
-
*/
|
|
812
|
-
export function buscar_paginador_configuracao(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
813
|
-
return chamar_servico({
|
|
814
|
-
servico: SERVICO_DESTA_API,
|
|
815
|
-
metodo_http: "GET",
|
|
816
|
-
caminho_da_rota: "/configuracao",
|
|
817
|
-
credencial_de_acesso,
|
|
818
|
-
parametros_de_consulta: parametros,
|
|
819
|
-
formato_da_resposta: "json",
|
|
820
|
-
}, opcoes_da_chamada);
|
|
821
|
-
}
|
|
822
|
-
/**
|
|
823
|
-
* Grava uma configuração do portal
|
|
824
|
-
*
|
|
825
|
-
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Configuração chave/valor do portal (vitrine). `chave` precisa ser uma das chaves conhecidas (ex.: `produtos_mostrar_preco`) e `valor` (texto) segue o tipo da chave: booleano `true`/`false`, hora `HH:MM`, decimal ou texto com limite. Cada chave existe uma vez só.
|
|
826
|
-
*
|
|
827
|
-
* `POST /configuracao`
|
|
828
|
-
*/
|
|
829
|
-
export function criar_configuracao(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
|
|
830
|
-
return chamar_servico({
|
|
831
|
-
servico: SERVICO_DESTA_API,
|
|
832
|
-
metodo_http: "POST",
|
|
833
|
-
caminho_da_rota: "/configuracao",
|
|
834
|
-
credencial_de_acesso,
|
|
835
|
-
corpo_json: corpo_da_requisicao,
|
|
836
|
-
formato_da_resposta: "json",
|
|
837
|
-
}, opcoes_da_chamada);
|
|
838
|
-
}
|
|
839
|
-
/**
|
|
840
|
-
* Lista básica de configurações para seleção
|
|
841
|
-
*
|
|
842
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve só id e chave, em ordem de chave. `busca` procura o trecho na chave. `tamanho` tem padrão 10 e vai de 1 a 50; `pagina` começa em 1. A resposta traz `itens`, `total`, `pagina` e `tamanho`.
|
|
843
|
-
*
|
|
844
|
-
* `GET /configuracao/autocomplete`
|
|
845
|
-
*/
|
|
846
|
-
export function buscar_auto_complete_configuracao(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
847
|
-
return chamar_servico({
|
|
848
|
-
servico: SERVICO_DESTA_API,
|
|
849
|
-
metodo_http: "GET",
|
|
850
|
-
caminho_da_rota: "/configuracao/autocomplete",
|
|
851
|
-
credencial_de_acesso,
|
|
852
|
-
parametros_de_consulta: parametros,
|
|
853
|
-
formato_da_resposta: "json",
|
|
854
|
-
}, opcoes_da_chamada);
|
|
855
|
-
}
|
|
856
|
-
/**
|
|
857
|
-
* Busca configurações por filtro
|
|
858
|
-
*
|
|
859
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve as configurações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), em ordem de chave. `chave` é exata; `prefixo` pega as chaves que começam com o texto (ex.: `produtos_`).
|
|
860
|
-
*
|
|
861
|
-
* `GET /configuracao/filtro`
|
|
862
|
-
*/
|
|
863
|
-
export function buscar_pelo_filtro_configuracao(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
864
|
-
return chamar_servico({
|
|
865
|
-
servico: SERVICO_DESTA_API,
|
|
866
|
-
metodo_http: "GET",
|
|
867
|
-
caminho_da_rota: "/configuracao/filtro",
|
|
868
|
-
credencial_de_acesso,
|
|
869
|
-
parametros_de_consulta: parametros,
|
|
870
|
-
formato_da_resposta: "json",
|
|
871
|
-
}, opcoes_da_chamada);
|
|
872
|
-
}
|
|
873
|
-
/**
|
|
874
|
-
* Busca uma configuração pelo id
|
|
875
|
-
*
|
|
876
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Configuração excluída não é encontrada.
|
|
877
|
-
*
|
|
878
|
-
* `GET /configuracao/{id}`
|
|
879
|
-
*/
|
|
880
|
-
export function buscar_pelo_id_configuracao(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
881
|
-
return chamar_servico({
|
|
882
|
-
servico: SERVICO_DESTA_API,
|
|
883
|
-
metodo_http: "GET",
|
|
884
|
-
caminho_da_rota: `/configuracao/${codificar_parametro_de_caminho(id)}`,
|
|
885
|
-
credencial_de_acesso,
|
|
886
|
-
formato_da_resposta: "json",
|
|
887
|
-
}, opcoes_da_chamada);
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* Atualiza o valor de uma configuração
|
|
891
|
-
*
|
|
892
|
-
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Troca o `valor`, validado pelo tipo da chave.
|
|
893
|
-
*
|
|
894
|
-
* `PATCH /configuracao/{id}`
|
|
895
|
-
*/
|
|
896
|
-
export function atualizar_pelo_id_configuracao(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
897
|
-
return chamar_servico({
|
|
898
|
-
servico: SERVICO_DESTA_API,
|
|
899
|
-
metodo_http: "PATCH",
|
|
900
|
-
caminho_da_rota: `/configuracao/${codificar_parametro_de_caminho(id)}`,
|
|
901
|
-
credencial_de_acesso,
|
|
902
|
-
corpo_json: corpo_da_requisicao,
|
|
903
|
-
formato_da_resposta: "json",
|
|
904
|
-
}, opcoes_da_chamada);
|
|
905
|
-
}
|
|
906
|
-
/**
|
|
907
|
-
* Exclui uma configuração
|
|
908
|
-
*
|
|
909
|
-
* Exige a permissão `excluir` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). A exclusão é lógica: o registro some das leituras, mas a linha não é apagada.
|
|
910
|
-
*
|
|
911
|
-
* `DELETE /configuracao/{id}`
|
|
912
|
-
*/
|
|
913
|
-
export function deletar_pelo_id_configuracao(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
914
|
-
return chamar_servico({
|
|
915
|
-
servico: SERVICO_DESTA_API,
|
|
916
|
-
metodo_http: "DELETE",
|
|
917
|
-
caminho_da_rota: `/configuracao/${codificar_parametro_de_caminho(id)}`,
|
|
918
|
-
credencial_de_acesso,
|
|
919
|
-
formato_da_resposta: "sem_conteudo",
|
|
920
|
-
}, opcoes_da_chamada);
|
|
921
|
-
}
|
|
922
|
-
/**
|
|
923
|
-
* Mostra a situação do segredo do app gerado no TermoAuth
|
|
924
|
-
*
|
|
925
|
-
* Só um master do TermoAuth (e-mail `@termotubos.com.br`) lê. Nunca devolve o valor: `segredo_do_app_gerado_no_termo_auth` traz só `configurado` e o final mascarado (`final_visivel`). `criptografia_disponivel` é falso quando o servidor está sem a `GLOBAL_SECRET_CRIPTOGRAFIA`; nesse caso o segredo aparece como não configurado.
|
|
926
|
-
*
|
|
927
|
-
* `GET /configuracao_provedor`
|
|
928
|
-
*/
|
|
929
|
-
export function buscar_pelo_id_configuracao_provedor(credencial_de_acesso, opcoes_da_chamada) {
|
|
930
|
-
return chamar_servico({
|
|
931
|
-
servico: SERVICO_DESTA_API,
|
|
932
|
-
metodo_http: "GET",
|
|
933
|
-
caminho_da_rota: "/configuracao_provedor",
|
|
934
|
-
credencial_de_acesso,
|
|
935
|
-
formato_da_resposta: "json",
|
|
936
|
-
}, opcoes_da_chamada);
|
|
937
|
-
}
|
|
938
|
-
/**
|
|
939
|
-
* Grava ou limpa o segredo do app gerado no TermoAuth
|
|
940
|
-
*
|
|
941
|
-
* Só um master do TermoAuth (e-mail `@termotubos.com.br`) grava. O segredo do app `portal-b2b` é guardado cifrado (AES-256-GCM com a `GLOBAL_SECRET_CRIPTOGRAFIA`) e entregue na hora ao `termo_core`, sem deploy. Campo ausente não muda nada, texto troca o segredo e `null` (ou texto vazio) limpa. No máximo 2.000 caracteres, sem quebra de linha.
|
|
942
|
-
*
|
|
943
|
-
* `PATCH /configuracao_provedor`
|
|
944
|
-
*/
|
|
945
|
-
export function atualizar_pelo_id_configuracao_provedor(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
|
|
946
|
-
return chamar_servico({
|
|
947
|
-
servico: SERVICO_DESTA_API,
|
|
948
|
-
metodo_http: "PATCH",
|
|
949
|
-
caminho_da_rota: "/configuracao_provedor",
|
|
950
|
-
credencial_de_acesso,
|
|
951
|
-
corpo_json: corpo_da_requisicao,
|
|
952
|
-
formato_da_resposta: "json",
|
|
953
|
-
}, opcoes_da_chamada);
|
|
954
|
-
}
|
|
955
673
|
/**
|
|
956
674
|
* Lista os contatos paginados
|
|
957
675
|
*
|
|
@@ -2043,7 +1761,7 @@ export function deletar_pelo_id_perfil(credencial_de_acesso, id, opcoes_da_chama
|
|
|
2043
1761
|
/**
|
|
2044
1762
|
* Lista os produtos paginados
|
|
2045
1763
|
*
|
|
2046
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `
|
|
1764
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `categoria_tiny` e `marca_tiny` procuram o trecho; `criado_desde`/`criado_ate` e `atualizado_desde`/`atualizado_ate` são datas AAAA-MM-DD inclusivas. Para quem não é colaborador interno, os dados do Tiny vêm vazios. Paginado com 50 itens por página (fixo); `pagina` começa em 1 (padrão 1). A resposta traz `itens`, `total` (registros que casam), `pagina` e `tamanho`. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
2047
1765
|
*
|
|
2048
1766
|
* `GET /produto`
|
|
2049
1767
|
*/
|
|
@@ -2060,7 +1778,7 @@ export function buscar_paginador_produto(credencial_de_acesso, parametros = {},
|
|
|
2060
1778
|
/**
|
|
2061
1779
|
* Cadastra um produto
|
|
2062
1780
|
*
|
|
2063
|
-
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Produto do catálogo. `sku` até 32 letras, números, ponto, hífen e `_`, único; `nome` de 2 a 200 caracteres; `preco` e `preco_a_vista` maiores que zero (à vista não maior que o base); `unidade` de venda obrigatória; `estoque` não negativo; `incremento_minimo` e `quantidade_minima` maiores que zero; até 15 `imagens` (URLs; a primeira é a principal). Campos: `
|
|
1781
|
+
* Exige a permissão `criar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Produto do catálogo. `sku` até 32 letras, números, ponto, hífen e `_`, único; `nome` de 2 a 200 caracteres; `preco` e `preco_a_vista` maiores que zero (à vista não maior que o base); `unidade` de venda obrigatória; `estoque` não negativo; `incremento_minimo` e `quantidade_minima` maiores que zero; até 15 `imagens` (URLs; a primeira é a principal). Campos: `embalagem` é o texto da embalagem de venda; `unidade_medida` é a unidade das quantidades (ex.: `m`, `un`); `embalagem_rotulo` é o nome da embalagem fechada (ex.: caixa); `embalagem_quantidade` é quantas unidades vêm na embalagem fechada (não negativa); `embalagem_preco` é o preço da embalagem fechada (não negativo); `cor` é atributo em texto; `lancamento` (booleano) marca o produto como lançamento; `relevancia` (inteiro) ordena a vitrine, da maior para a menor; `descricao` é o texto longo da vitrine (até 5000 caracteres); `especificacoes_texto` é a ficha técnica em texto (até 5000 caracteres); `outras_informacoes` é texto livre extra (até 2000 caracteres); `demonstracao` (booleano) marca produto de demonstração; `importado_da_api` (booleano) marca produto vindo do Tiny; `heuristica_pendente` é a lista de campos que ainda precisam de revisão manual.
|
|
2064
1782
|
*
|
|
2065
1783
|
* `POST /produto`
|
|
2066
1784
|
*/
|
|
@@ -2094,7 +1812,7 @@ export function buscar_auto_complete_produto(credencial_de_acesso, parametros =
|
|
|
2094
1812
|
/**
|
|
2095
1813
|
* Busca produtos por filtro
|
|
2096
1814
|
*
|
|
2097
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os produtos não excluídos que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `
|
|
1815
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os produtos não excluídos que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1). `ordem` aceita `relevancia` (padrão: relevância, depois nome), `menor-preco`/`maior-preco` (preço à vista, ou o preço base quando o à vista é zero), `az`/`za` (nome), `mais-novo`/`mais-antigo` (data de cadastro); o desempate é sempre nome e id; outro valor responde 400 `Ordem inválida`. Filtros opcionais (todos combinam com E): `sku` exato e `skus` vários separados por vírgula (sem diferenciar maiúsculas); `nome` procura o trecho no nome, no SKU e no nome comercial, sem diferenciar maiúsculas nem acentos; `ativo`, `lancamento`, `importado_da_api`, `demonstracao` são exatos; `tem_preco_portal_b2b` (`true` só os que têm Preço Portal B2B); `tem_imagem` (ao menos uma imagem), `tem_estoque` (estoque maior que zero), `tem_descricao`, `tem_nome_comercial`, `tem_heuristica_pendente` e `enriquecido` (já enriquecido pelo Tiny) aceitam `true` ou `false`; `estoque_minimo`/`estoque_maximo` e `preco_minimo`/`preco_maximo` são faixas inclusivas; `unidade` é exata e `cor`, `categoria_tiny` e `marca_tiny` procuram o trecho; `criado_desde`/`criado_ate` e `atualizado_desde`/`atualizado_ate` são datas AAAA-MM-DD inclusivas. Para quem não é colaborador interno, os dados do Tiny vêm vazios. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
2098
1816
|
*
|
|
2099
1817
|
* `GET /produto/filtro`
|
|
2100
1818
|
*/
|
|
@@ -2127,7 +1845,7 @@ export function buscar_pelo_id_produto(credencial_de_acesso, id, opcoes_da_chama
|
|
|
2127
1845
|
/**
|
|
2128
1846
|
* Atualiza um produto
|
|
2129
1847
|
*
|
|
2130
|
-
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Mesmas validações do cadastro (o SKU não muda). `embalagem_quantidade` e `embalagem_preco` aceitam `null` para apagar. Produto do Tiny não aceita `preco` nem `preco_a_vista` (400): o preço próprio do portal vai em `preco_portal_b2b`, maior que zero e até o preço a prazo do Tiny, e vira o preço à vista usado no portal; `null` apaga e o preço à vista volta ao do Tiny. A sincronização com o Tiny nunca muda o `preco_portal_b2b`. Produto que não veio do Tiny não aceita `preco_portal_b2b` (400). Atualização parcial: campo ausente mantém o valor atual. Campos: `nome` de 2 a 200 caracteres; `
|
|
1848
|
+
* Exige a permissão `editar` no módulo `Configuracoes` do perfil de quem chama (administrador e master têm tudo). Mesmas validações do cadastro (o SKU não muda). `embalagem_quantidade` e `embalagem_preco` aceitam `null` para apagar. Produto do Tiny não aceita `preco` nem `preco_a_vista` (400): o preço próprio do portal vai em `preco_portal_b2b`, maior que zero e até o preço a prazo do Tiny, e vira o preço à vista usado no portal; `null` apaga e o preço à vista volta ao do Tiny. A sincronização com o Tiny nunca muda o `preco_portal_b2b`. Produto que não veio do Tiny não aceita `preco_portal_b2b` (400). Atualização parcial: campo ausente mantém o valor atual. Campos: `nome` de 2 a 200 caracteres; `unidade` é a unidade de venda (obrigatória quando enviada); `embalagem` é o texto da embalagem de venda; `unidade_medida` é a unidade das quantidades (ex.: `m`, `un`); `embalagem_rotulo` é o nome da embalagem fechada (ex.: caixa); `incremento_minimo` maior que zero; `cor` é atributo em texto; `lancamento` (booleano) marca o produto como lançamento; `relevancia` (inteiro) ordena a vitrine, da maior para a menor; `imagens` até 15 URLs, sem itens vazios; `descricao` é o texto longo da vitrine (até 5000 caracteres); `especificacoes_texto` é a ficha técnica em texto (até 5000 caracteres); `outras_informacoes` é texto livre extra (até 2000 caracteres); `heuristica_pendente` é a lista de campos que ainda precisam de revisão manual. `nome_comercial` é o nome mostrado ao cliente e `resumo_caracteristicas` a linha curta de características do card; os dois aceitam texto ou `null` para limpar (vazio também limpa).
|
|
2131
1849
|
*
|
|
2132
1850
|
* `PATCH /produto/{id}`
|
|
2133
1851
|
*/
|
package/dist/portal/tipos.d.ts
CHANGED
|
@@ -213,41 +213,6 @@ export interface ClientePaginador {
|
|
|
213
213
|
export interface ClienteSincronizar {
|
|
214
214
|
cursor?: number | null;
|
|
215
215
|
}
|
|
216
|
-
export interface Colaborador {
|
|
217
|
-
atualizado_em: string;
|
|
218
|
-
cargo?: string | null;
|
|
219
|
-
criado_em: string;
|
|
220
|
-
email: string;
|
|
221
|
-
foto_url?: string | null;
|
|
222
|
-
id: string;
|
|
223
|
-
nome: string;
|
|
224
|
-
perfil_id: string;
|
|
225
|
-
perfil_nome: string;
|
|
226
|
-
status: string;
|
|
227
|
-
telefone?: string | null;
|
|
228
|
-
ultimo_acesso_em?: string | null;
|
|
229
|
-
}
|
|
230
|
-
export interface ColaboradorAtualizar {
|
|
231
|
-
cargo?: string | null;
|
|
232
|
-
nome?: string | null;
|
|
233
|
-
perfil_id?: string | null;
|
|
234
|
-
presente?: boolean | null;
|
|
235
|
-
status?: string | null;
|
|
236
|
-
telefone?: string | null;
|
|
237
|
-
}
|
|
238
|
-
export interface ColaboradorAutoComplete {
|
|
239
|
-
email: string;
|
|
240
|
-
id: string;
|
|
241
|
-
nome: string;
|
|
242
|
-
}
|
|
243
|
-
export interface ColaboradorCriar {
|
|
244
|
-
cargo?: string | null;
|
|
245
|
-
email: string;
|
|
246
|
-
nome: string;
|
|
247
|
-
perfil_id?: string | null;
|
|
248
|
-
status?: string | null;
|
|
249
|
-
telefone?: string | null;
|
|
250
|
-
}
|
|
251
216
|
export interface CompraDoMes {
|
|
252
217
|
comprado: number;
|
|
253
218
|
mes: string;
|
|
@@ -257,33 +222,6 @@ export interface CompraPorTipo {
|
|
|
257
222
|
comprado: number;
|
|
258
223
|
tipo: string;
|
|
259
224
|
}
|
|
260
|
-
export interface Configuracao {
|
|
261
|
-
atualizado_em: string;
|
|
262
|
-
chave: string;
|
|
263
|
-
criado_em: string;
|
|
264
|
-
id: string;
|
|
265
|
-
valor: string;
|
|
266
|
-
}
|
|
267
|
-
export interface ConfiguracaoAtualizar {
|
|
268
|
-
valor: string;
|
|
269
|
-
}
|
|
270
|
-
export interface ConfiguracaoAutoComplete {
|
|
271
|
-
chave: string;
|
|
272
|
-
id: string;
|
|
273
|
-
}
|
|
274
|
-
export interface ConfiguracaoCriar {
|
|
275
|
-
chave: string;
|
|
276
|
-
valor: string;
|
|
277
|
-
}
|
|
278
|
-
export interface ConfiguracaoProvedor {
|
|
279
|
-
atualizado_em: string;
|
|
280
|
-
atualizado_por?: string | null;
|
|
281
|
-
criptografia_disponivel: boolean;
|
|
282
|
-
segredo_do_app_gerado_no_termo_auth: ValorProtegido;
|
|
283
|
-
}
|
|
284
|
-
export interface ConfiguracaoProvedorAtualizar {
|
|
285
|
-
segredo_do_app_gerado_no_termo_auth?: string | null;
|
|
286
|
-
}
|
|
287
225
|
export interface ContagemClientes {
|
|
288
226
|
com_acesso: number;
|
|
289
227
|
sem_acesso: number;
|
|
@@ -769,60 +707,6 @@ export interface PaginaClienteAutoComplete {
|
|
|
769
707
|
tamanho: number;
|
|
770
708
|
total: number;
|
|
771
709
|
}
|
|
772
|
-
export interface PaginaColaboradorItensItem {
|
|
773
|
-
atualizado_em: string;
|
|
774
|
-
cargo?: string | null;
|
|
775
|
-
criado_em: string;
|
|
776
|
-
email: string;
|
|
777
|
-
foto_url?: string | null;
|
|
778
|
-
id: string;
|
|
779
|
-
nome: string;
|
|
780
|
-
perfil_id: string;
|
|
781
|
-
perfil_nome: string;
|
|
782
|
-
status: string;
|
|
783
|
-
telefone?: string | null;
|
|
784
|
-
ultimo_acesso_em?: string | null;
|
|
785
|
-
}
|
|
786
|
-
export interface PaginaColaborador {
|
|
787
|
-
itens: Array<PaginaColaboradorItensItem>;
|
|
788
|
-
pagina: number;
|
|
789
|
-
tamanho: number;
|
|
790
|
-
total: number;
|
|
791
|
-
}
|
|
792
|
-
export interface PaginaColaboradorAutoCompleteItensItem {
|
|
793
|
-
email: string;
|
|
794
|
-
id: string;
|
|
795
|
-
nome: string;
|
|
796
|
-
}
|
|
797
|
-
export interface PaginaColaboradorAutoComplete {
|
|
798
|
-
itens: Array<PaginaColaboradorAutoCompleteItensItem>;
|
|
799
|
-
pagina: number;
|
|
800
|
-
tamanho: number;
|
|
801
|
-
total: number;
|
|
802
|
-
}
|
|
803
|
-
export interface PaginaConfiguracaoItensItem {
|
|
804
|
-
atualizado_em: string;
|
|
805
|
-
chave: string;
|
|
806
|
-
criado_em: string;
|
|
807
|
-
id: string;
|
|
808
|
-
valor: string;
|
|
809
|
-
}
|
|
810
|
-
export interface PaginaConfiguracao {
|
|
811
|
-
itens: Array<PaginaConfiguracaoItensItem>;
|
|
812
|
-
pagina: number;
|
|
813
|
-
tamanho: number;
|
|
814
|
-
total: number;
|
|
815
|
-
}
|
|
816
|
-
export interface PaginaConfiguracaoAutoCompleteItensItem {
|
|
817
|
-
chave: string;
|
|
818
|
-
id: string;
|
|
819
|
-
}
|
|
820
|
-
export interface PaginaConfiguracaoAutoComplete {
|
|
821
|
-
itens: Array<PaginaConfiguracaoAutoCompleteItensItem>;
|
|
822
|
-
pagina: number;
|
|
823
|
-
tamanho: number;
|
|
824
|
-
total: number;
|
|
825
|
-
}
|
|
826
710
|
export interface PaginaContatoItensItem {
|
|
827
711
|
atualizado_em: string;
|
|
828
712
|
cargo?: string | null;
|
|
@@ -983,7 +867,6 @@ export interface PaginaPerfilAutoComplete {
|
|
|
983
867
|
total: number;
|
|
984
868
|
}
|
|
985
869
|
export interface PaginaProdutoItensItem {
|
|
986
|
-
aplicacao?: string | null;
|
|
987
870
|
ativo: boolean;
|
|
988
871
|
atualizado_em: string;
|
|
989
872
|
categoria_tiny?: string | null;
|
|
@@ -991,7 +874,6 @@ export interface PaginaProdutoItensItem {
|
|
|
991
874
|
criado_em: string;
|
|
992
875
|
demonstracao: boolean;
|
|
993
876
|
descricao?: string | null;
|
|
994
|
-
diametro?: string | null;
|
|
995
877
|
disponivel: boolean;
|
|
996
878
|
embalagem?: string | null;
|
|
997
879
|
embalagem_altura?: number | null;
|
|
@@ -1013,7 +895,6 @@ export interface PaginaProdutoItensItem {
|
|
|
1013
895
|
incremento_minimo: number;
|
|
1014
896
|
lancamento: boolean;
|
|
1015
897
|
marca_tiny?: string | null;
|
|
1016
|
-
material?: string | null;
|
|
1017
898
|
ncm?: string | null;
|
|
1018
899
|
nome: string;
|
|
1019
900
|
nome_comercial?: string | null;
|
|
@@ -1032,7 +913,6 @@ export interface PaginaProdutoItensItem {
|
|
|
1032
913
|
resumo_caracteristicas?: string | null;
|
|
1033
914
|
sincronizado_em?: string | null;
|
|
1034
915
|
sku: string;
|
|
1035
|
-
temperatura?: string | null;
|
|
1036
916
|
tipo_tiny?: string | null;
|
|
1037
917
|
unidade: string;
|
|
1038
918
|
unidade_medida: string;
|
|
@@ -1363,7 +1243,6 @@ export interface PerfilPermissaoEntrada {
|
|
|
1363
1243
|
ver: boolean;
|
|
1364
1244
|
}
|
|
1365
1245
|
export interface Produto {
|
|
1366
|
-
aplicacao?: string | null;
|
|
1367
1246
|
ativo: boolean;
|
|
1368
1247
|
atualizado_em: string;
|
|
1369
1248
|
categoria_tiny?: string | null;
|
|
@@ -1371,7 +1250,6 @@ export interface Produto {
|
|
|
1371
1250
|
criado_em: string;
|
|
1372
1251
|
demonstracao: boolean;
|
|
1373
1252
|
descricao?: string | null;
|
|
1374
|
-
diametro?: string | null;
|
|
1375
1253
|
disponivel: boolean;
|
|
1376
1254
|
embalagem?: string | null;
|
|
1377
1255
|
embalagem_altura?: number | null;
|
|
@@ -1393,7 +1271,6 @@ export interface Produto {
|
|
|
1393
1271
|
incremento_minimo: number;
|
|
1394
1272
|
lancamento: boolean;
|
|
1395
1273
|
marca_tiny?: string | null;
|
|
1396
|
-
material?: string | null;
|
|
1397
1274
|
ncm?: string | null;
|
|
1398
1275
|
nome: string;
|
|
1399
1276
|
nome_comercial?: string | null;
|
|
@@ -1412,17 +1289,14 @@ export interface Produto {
|
|
|
1412
1289
|
resumo_caracteristicas?: string | null;
|
|
1413
1290
|
sincronizado_em?: string | null;
|
|
1414
1291
|
sku: string;
|
|
1415
|
-
temperatura?: string | null;
|
|
1416
1292
|
tipo_tiny?: string | null;
|
|
1417
1293
|
unidade: string;
|
|
1418
1294
|
unidade_medida: string;
|
|
1419
1295
|
}
|
|
1420
1296
|
export interface ProdutoAtualizar {
|
|
1421
|
-
aplicacao?: string | null;
|
|
1422
1297
|
ativo?: boolean | null;
|
|
1423
1298
|
cor?: string | null;
|
|
1424
1299
|
descricao?: string | null;
|
|
1425
|
-
diametro?: string | null;
|
|
1426
1300
|
embalagem?: string | null;
|
|
1427
1301
|
embalagem_preco?: number | null;
|
|
1428
1302
|
embalagem_quantidade?: number | null;
|
|
@@ -1433,7 +1307,6 @@ export interface ProdutoAtualizar {
|
|
|
1433
1307
|
imagens?: Array<string> | null;
|
|
1434
1308
|
incremento_minimo?: number | null;
|
|
1435
1309
|
lancamento?: boolean | null;
|
|
1436
|
-
material?: string | null;
|
|
1437
1310
|
nome?: string | null;
|
|
1438
1311
|
nome_comercial?: string | null;
|
|
1439
1312
|
outras_informacoes?: string | null;
|
|
@@ -1443,7 +1316,6 @@ export interface ProdutoAtualizar {
|
|
|
1443
1316
|
quantidade_minima?: number | null;
|
|
1444
1317
|
relevancia?: number | null;
|
|
1445
1318
|
resumo_caracteristicas?: string | null;
|
|
1446
|
-
temperatura?: string | null;
|
|
1447
1319
|
unidade?: string | null;
|
|
1448
1320
|
unidade_medida?: string | null;
|
|
1449
1321
|
}
|
|
@@ -1490,12 +1362,10 @@ export interface ProdutoConflitoSincronizacaoCriar {
|
|
|
1490
1362
|
valor_local: string;
|
|
1491
1363
|
}
|
|
1492
1364
|
export interface ProdutoCriar {
|
|
1493
|
-
aplicacao?: string | null;
|
|
1494
1365
|
ativo?: boolean | null;
|
|
1495
1366
|
cor?: string | null;
|
|
1496
1367
|
demonstracao?: boolean | null;
|
|
1497
1368
|
descricao?: string | null;
|
|
1498
|
-
diametro?: string | null;
|
|
1499
1369
|
embalagem?: string | null;
|
|
1500
1370
|
embalagem_preco?: number | null;
|
|
1501
1371
|
embalagem_quantidade?: number | null;
|
|
@@ -1507,7 +1377,6 @@ export interface ProdutoCriar {
|
|
|
1507
1377
|
importado_da_api?: boolean | null;
|
|
1508
1378
|
incremento_minimo?: number | null;
|
|
1509
1379
|
lancamento?: boolean | null;
|
|
1510
|
-
material?: string | null;
|
|
1511
1380
|
nome: string;
|
|
1512
1381
|
outras_informacoes?: string | null;
|
|
1513
1382
|
preco: number;
|
|
@@ -1515,7 +1384,6 @@ export interface ProdutoCriar {
|
|
|
1515
1384
|
quantidade_minima?: number | null;
|
|
1516
1385
|
relevancia?: number | null;
|
|
1517
1386
|
sku: string;
|
|
1518
|
-
temperatura?: string | null;
|
|
1519
1387
|
unidade: string;
|
|
1520
1388
|
unidade_medida?: string | null;
|
|
1521
1389
|
}
|
|
@@ -1784,10 +1652,6 @@ export interface UnidadeReferencia {
|
|
|
1784
1652
|
id: string;
|
|
1785
1653
|
razao_social: string;
|
|
1786
1654
|
}
|
|
1787
|
-
export interface ValorProtegido {
|
|
1788
|
-
configurado: boolean;
|
|
1789
|
-
final_visivel?: string | null;
|
|
1790
|
-
}
|
|
1791
1655
|
export interface VendaAgrupada {
|
|
1792
1656
|
chave?: string | null;
|
|
1793
1657
|
pedidos: number;
|
|
@@ -1799,7 +1663,3 @@ export interface VendaDoDia {
|
|
|
1799
1663
|
pedidos: number;
|
|
1800
1664
|
vendido: number;
|
|
1801
1665
|
}
|
|
1802
|
-
export interface VersaoDaApi {
|
|
1803
|
-
sucesso: boolean;
|
|
1804
|
-
versao: string;
|
|
1805
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "termo_core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Todos os clientes da Termotubos num pacote só: um módulo por serviço e cada rota da API como uma função com fetch, com o endereço resolvido pelo ambiente atual.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "TI Termotubos <ti@termotubos.com.br>",
|
|
File without changes
|