termo_core 0.1.11 → 0.1.13
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/miro/rotas.d.ts +2 -2
- package/dist/miro/rotas.js +2 -2
- package/dist/portal/rotas.d.ts +20 -4
- package/dist/portal/rotas.js +36 -4
- package/dist/portal/tipos.d.ts +74 -0
- package/dist/support/rotas.d.ts +2 -2
- package/dist/support/rotas.js +2 -2
- package/dist/support/tipos.d.ts +0 -4
- package/package.json +1 -1
package/dist/miro/rotas.d.ts
CHANGED
|
@@ -78,7 +78,7 @@ export declare function buscar_pelo_filtro_board(credencial_de_acesso: Credencia
|
|
|
78
78
|
/**
|
|
79
79
|
* Baixa uma imagem do canvas guardada no banco
|
|
80
80
|
*
|
|
81
|
-
* Pública (o `<img>` do canvas não manda token): devolve os bytes
|
|
81
|
+
* Pública (o `<img>` do canvas não manda token): devolve os bytes das imagens antigas que ficaram no banco quando o TermoBucket falhava, com cache longo. Nenhuma imagem nova vai para o banco.
|
|
82
82
|
*
|
|
83
83
|
* `GET /board/imagem/{id}`
|
|
84
84
|
*/
|
|
@@ -171,7 +171,7 @@ export declare function elementos_organizar_board(credencial_de_acesso: Credenci
|
|
|
171
171
|
/**
|
|
172
172
|
* Envia uma imagem para o canvas
|
|
173
173
|
*
|
|
174
|
-
* Guarda uma imagem PNG, JPG, GIF ou WEBP de até 10 MB (`arquivo_base64`, cru com `tipo` ou como data URL) e devolve o endereço público para o elemento de imagem do canvas. A imagem vai ao TermoBucket como arquivo público
|
|
174
|
+
* Guarda uma imagem PNG, JPG, GIF ou WEBP de até 10 MB (`arquivo_base64`, cru com `tipo` ou como data URL) e devolve o endereço público para o elemento de imagem do canvas. A imagem vai ao TermoBucket como arquivo público e nunca fica no banco: se o bucket falhar, responde `503`.
|
|
175
175
|
*
|
|
176
176
|
* `POST /board/{id}/imagem`
|
|
177
177
|
*/
|
package/dist/miro/rotas.js
CHANGED
|
@@ -72,7 +72,7 @@ export function buscar_pelo_filtro_board(credencial_de_acesso, parametros = {},
|
|
|
72
72
|
/**
|
|
73
73
|
* Baixa uma imagem do canvas guardada no banco
|
|
74
74
|
*
|
|
75
|
-
* Pública (o `<img>` do canvas não manda token): devolve os bytes
|
|
75
|
+
* Pública (o `<img>` do canvas não manda token): devolve os bytes das imagens antigas que ficaram no banco quando o TermoBucket falhava, com cache longo. Nenhuma imagem nova vai para o banco.
|
|
76
76
|
*
|
|
77
77
|
* `GET /board/imagem/{id}`
|
|
78
78
|
*/
|
|
@@ -250,7 +250,7 @@ export function elementos_organizar_board(credencial_de_acesso, id, corpo_da_req
|
|
|
250
250
|
/**
|
|
251
251
|
* Envia uma imagem para o canvas
|
|
252
252
|
*
|
|
253
|
-
* Guarda uma imagem PNG, JPG, GIF ou WEBP de até 10 MB (`arquivo_base64`, cru com `tipo` ou como data URL) e devolve o endereço público para o elemento de imagem do canvas. A imagem vai ao TermoBucket como arquivo público
|
|
253
|
+
* Guarda uma imagem PNG, JPG, GIF ou WEBP de até 10 MB (`arquivo_base64`, cru com `tipo` ou como data URL) e devolve o endereço público para o elemento de imagem do canvas. A imagem vai ao TermoBucket como arquivo público e nunca fica no banco: se o bucket falhar, responde `503`.
|
|
254
254
|
*
|
|
255
255
|
* `POST /board/{id}/imagem`
|
|
256
256
|
*/
|
package/dist/portal/rotas.d.ts
CHANGED
|
@@ -1036,6 +1036,14 @@ export declare function atualizar_pelo_id_cotacao(credencial_de_acesso: Credenci
|
|
|
1036
1036
|
* `DELETE /cotacao/{id}`
|
|
1037
1037
|
*/
|
|
1038
1038
|
export declare function deletar_pelo_id_cotacao(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
1039
|
+
/**
|
|
1040
|
+
* Baixa a cotação em PDF, gerado na hora
|
|
1041
|
+
*
|
|
1042
|
+
* Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta em memória o PDF da cotação (A4 retrato, quantas folhas os itens pedirem) com o que a tela mostra: número (C-1001), data de envio e validade (`valida_ate`), razão social da unidade, endereço de entrega, itens (SKU, nome, unidade, quantidade, preço unitário e total da linha), subtotal, desconto, frete (“A combinar” quando zero), total e observação. Nunca traz estoque. Nada é gravado em disco nem no banco. Responde `application/pdf` como download `cotacao-C-{numero}.pdf`. Cotação excluída, ou de unidade fora da sessão, responde 404.
|
|
1043
|
+
*
|
|
1044
|
+
* `GET /cotacao/{id}/pdf`
|
|
1045
|
+
*/
|
|
1046
|
+
export declare function baixar_cotacao_em_pdf_cotacao(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<Uint8Array>;
|
|
1039
1047
|
/**
|
|
1040
1048
|
* As 10 empresas que mais enviaram pedidos no período
|
|
1041
1049
|
*
|
|
@@ -1244,6 +1252,14 @@ export declare function buscar_informacoes_paginador_nota_fiscal(credencial_de_a
|
|
|
1244
1252
|
* `GET /nota_fiscal/{id}`
|
|
1245
1253
|
*/
|
|
1246
1254
|
export declare function buscar_pelo_id_nota_fiscal(credencial_de_acesso: CredencialDeAcesso, id: number, parametros?: ParametrosDeBuscarPeloIdNotaFiscal, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.NotaFiscal>;
|
|
1255
|
+
/**
|
|
1256
|
+
* Baixa a nota fiscal em PDF (DANFE), gerado na hora a partir do XML
|
|
1257
|
+
*
|
|
1258
|
+
* Exige a permissão `ver` no módulo `Financeiro` do perfil de quem chama (administrador e master têm tudo). Confere a nota na tabela `nota_fiscal`, busca o XML autorizado na hora na API da Termotubos e monta o DANFE (A4 retrato, com código de barras da chave de acesso e quantas folhas os itens pedirem) em memória: nada é gravado em disco nem no banco. Responde `application/pdf` como download `nota-{numero}.pdf`. Quem não é colaborador interno só baixa notas do CNPJ das próprias unidades (as outras respondem 404).
|
|
1259
|
+
*
|
|
1260
|
+
* `GET /nota_fiscal/{id}/pdf`
|
|
1261
|
+
*/
|
|
1262
|
+
export declare function baixar_nota_fiscal_via_xml_nota_fiscal(credencial_de_acesso: CredencialDeAcesso, id: number, opcoes_da_chamada?: OpcoesDaChamada): Promise<Uint8Array>;
|
|
1247
1263
|
/**
|
|
1248
1264
|
* Lista os pedidos paginados
|
|
1249
1265
|
*
|
|
@@ -1399,7 +1415,7 @@ export declare function buscar_pelo_id_pedido_venda_tiny(credencial_de_acesso: C
|
|
|
1399
1415
|
/**
|
|
1400
1416
|
* Lista os produtos paginados
|
|
1401
1417
|
*
|
|
1402
|
-
* 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.
|
|
1418
|
+
* 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` (preço à vista, ou o preço base quando o à vista é zero, o mesmo da ordem) 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 de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. 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.
|
|
1403
1419
|
*
|
|
1404
1420
|
* `GET /produto`
|
|
1405
1421
|
*/
|
|
@@ -1423,7 +1439,7 @@ export declare function buscar_auto_complete_produto(credencial_de_acesso: Crede
|
|
|
1423
1439
|
/**
|
|
1424
1440
|
* Busca produtos por filtro
|
|
1425
1441
|
*
|
|
1426
|
-
* 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.
|
|
1442
|
+
* 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` (preço à vista, ou o preço base quando o à vista é zero, o mesmo da ordem) 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 de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1427
1443
|
*
|
|
1428
1444
|
* `GET /produto/filtro`
|
|
1429
1445
|
*/
|
|
@@ -1431,7 +1447,7 @@ export declare function buscar_pelo_filtro_produto(credencial_de_acesso: Credenc
|
|
|
1431
1447
|
/**
|
|
1432
1448
|
* Busca um produto pelo id
|
|
1433
1449
|
*
|
|
1434
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Produto excluído não é encontrado. Para quem não é colaborador interno, os dados do Tiny (`preco_tiny`, `preco_a_vista_tiny`, `
|
|
1450
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). Produto excluído não é encontrado. Para quem não é colaborador interno, os dados do Tiny de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1435
1451
|
*
|
|
1436
1452
|
* `GET /produto/{id}`
|
|
1437
1453
|
*/
|
|
@@ -1439,7 +1455,7 @@ export declare function buscar_pelo_id_produto(credencial_de_acesso: CredencialD
|
|
|
1439
1455
|
/**
|
|
1440
1456
|
* Atualiza um produto
|
|
1441
1457
|
*
|
|
1442
|
-
* 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`,
|
|
1458
|
+
* 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` (à vista) e `preco_portal_b2b_a_prazo`, maiores que zero e com o à vista até o a prazo, e viram o `preco_a_vista` e o `preco` usados no portal; `null` apaga e o preço volta ao do Tiny. A sincronização com o Tiny nunca muda os dois. Produto que não veio do Tiny não aceita os dois (400). `precos_por_unidade` troca a lista das unidades: cada uma com `variacao_a_vista` e `variacao_a_prazo` em % (de -100 a 100; negativo é desconto, positivo é acréscimo) sobre o preço de referência (o Preço Portal B2B ou, sem ele, o do Tiny), `ativo` (padrão `true`) e `quantidade` (opcional, maior que zero: a quantidade que vai em cada embalagem dessa unidade). No produto do Tiny, a variação da unidade do produto entra no `preco_a_vista` e no `preco` usados no portal. 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).
|
|
1443
1459
|
*
|
|
1444
1460
|
* `PATCH /produto/{id}`
|
|
1445
1461
|
*/
|
package/dist/portal/rotas.js
CHANGED
|
@@ -854,6 +854,22 @@ export function deletar_pelo_id_cotacao(credencial_de_acesso, id, opcoes_da_cham
|
|
|
854
854
|
formato_da_resposta: "sem_conteudo",
|
|
855
855
|
}, opcoes_da_chamada);
|
|
856
856
|
}
|
|
857
|
+
/**
|
|
858
|
+
* Baixa a cotação em PDF, gerado na hora
|
|
859
|
+
*
|
|
860
|
+
* Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta em memória o PDF da cotação (A4 retrato, quantas folhas os itens pedirem) com o que a tela mostra: número (C-1001), data de envio e validade (`valida_ate`), razão social da unidade, endereço de entrega, itens (SKU, nome, unidade, quantidade, preço unitário e total da linha), subtotal, desconto, frete (“A combinar” quando zero), total e observação. Nunca traz estoque. Nada é gravado em disco nem no banco. Responde `application/pdf` como download `cotacao-C-{numero}.pdf`. Cotação excluída, ou de unidade fora da sessão, responde 404.
|
|
861
|
+
*
|
|
862
|
+
* `GET /cotacao/{id}/pdf`
|
|
863
|
+
*/
|
|
864
|
+
export function baixar_cotacao_em_pdf_cotacao(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
865
|
+
return chamar_servico({
|
|
866
|
+
servico: SERVICO_DESTA_API,
|
|
867
|
+
metodo_http: "GET",
|
|
868
|
+
caminho_da_rota: `/cotacao/${codificar_parametro_de_caminho(id)}/pdf`,
|
|
869
|
+
credencial_de_acesso,
|
|
870
|
+
formato_da_resposta: "bytes",
|
|
871
|
+
}, opcoes_da_chamada);
|
|
872
|
+
}
|
|
857
873
|
/**
|
|
858
874
|
* As 10 empresas que mais enviaram pedidos no período
|
|
859
875
|
*
|
|
@@ -1290,6 +1306,22 @@ export function buscar_pelo_id_nota_fiscal(credencial_de_acesso, id, parametros
|
|
|
1290
1306
|
formato_da_resposta: "json",
|
|
1291
1307
|
}, opcoes_da_chamada);
|
|
1292
1308
|
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Baixa a nota fiscal em PDF (DANFE), gerado na hora a partir do XML
|
|
1311
|
+
*
|
|
1312
|
+
* Exige a permissão `ver` no módulo `Financeiro` do perfil de quem chama (administrador e master têm tudo). Confere a nota na tabela `nota_fiscal`, busca o XML autorizado na hora na API da Termotubos e monta o DANFE (A4 retrato, com código de barras da chave de acesso e quantas folhas os itens pedirem) em memória: nada é gravado em disco nem no banco. Responde `application/pdf` como download `nota-{numero}.pdf`. Quem não é colaborador interno só baixa notas do CNPJ das próprias unidades (as outras respondem 404).
|
|
1313
|
+
*
|
|
1314
|
+
* `GET /nota_fiscal/{id}/pdf`
|
|
1315
|
+
*/
|
|
1316
|
+
export function baixar_nota_fiscal_via_xml_nota_fiscal(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
1317
|
+
return chamar_servico({
|
|
1318
|
+
servico: SERVICO_DESTA_API,
|
|
1319
|
+
metodo_http: "GET",
|
|
1320
|
+
caminho_da_rota: `/nota_fiscal/${codificar_parametro_de_caminho(id)}/pdf`,
|
|
1321
|
+
credencial_de_acesso,
|
|
1322
|
+
formato_da_resposta: "bytes",
|
|
1323
|
+
}, opcoes_da_chamada);
|
|
1324
|
+
}
|
|
1293
1325
|
/**
|
|
1294
1326
|
* Lista os pedidos paginados
|
|
1295
1327
|
*
|
|
@@ -1611,7 +1643,7 @@ export function buscar_pelo_id_pedido_venda_tiny(credencial_de_acesso, id, param
|
|
|
1611
1643
|
/**
|
|
1612
1644
|
* Lista os produtos paginados
|
|
1613
1645
|
*
|
|
1614
|
-
* 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.
|
|
1646
|
+
* 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` (preço à vista, ou o preço base quando o à vista é zero, o mesmo da ordem) 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 de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. 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.
|
|
1615
1647
|
*
|
|
1616
1648
|
* `GET /produto`
|
|
1617
1649
|
*/
|
|
@@ -1662,7 +1694,7 @@ export function buscar_auto_complete_produto(credencial_de_acesso, parametros =
|
|
|
1662
1694
|
/**
|
|
1663
1695
|
* Busca produtos por filtro
|
|
1664
1696
|
*
|
|
1665
|
-
* 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.
|
|
1697
|
+
* 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` (preço à vista, ou o preço base quando o à vista é zero, o mesmo da ordem) 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 de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1666
1698
|
*
|
|
1667
1699
|
* `GET /produto/filtro`
|
|
1668
1700
|
*/
|
|
@@ -1679,7 +1711,7 @@ export function buscar_pelo_filtro_produto(credencial_de_acesso, parametros = {}
|
|
|
1679
1711
|
/**
|
|
1680
1712
|
* Busca um produto pelo id
|
|
1681
1713
|
*
|
|
1682
|
-
* Exige só uma sessão válida (qualquer pessoa logada no portal). Produto excluído não é encontrado. Para quem não é colaborador interno, os dados do Tiny (`preco_tiny`, `preco_a_vista_tiny`, `
|
|
1714
|
+
* Exige só uma sessão válida (qualquer pessoa logada no portal). Produto excluído não é encontrado. Para quem não é colaborador interno, os dados do Tiny de conferência (`nome_tiny`, `preco_tiny`, `preco_a_vista_tiny`, `preco_portal_b2b`, `preco_portal_b2b_a_prazo`, `precos_por_unidade`, `enriquecido_em`) vêm vazios; `categoria_tiny` e `marca_tiny` vêm preenchidos. Para quem não é colaborador interno, `estoque` vem `null` (a quantidade nunca é mostrada ao cliente) e `disponivel` diz se há estoque.
|
|
1683
1715
|
*
|
|
1684
1716
|
* `GET /produto/{id}`
|
|
1685
1717
|
*/
|
|
@@ -1695,7 +1727,7 @@ export function buscar_pelo_id_produto(credencial_de_acesso, id, opcoes_da_chama
|
|
|
1695
1727
|
/**
|
|
1696
1728
|
* Atualiza um produto
|
|
1697
1729
|
*
|
|
1698
|
-
* 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`,
|
|
1730
|
+
* 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` (à vista) e `preco_portal_b2b_a_prazo`, maiores que zero e com o à vista até o a prazo, e viram o `preco_a_vista` e o `preco` usados no portal; `null` apaga e o preço volta ao do Tiny. A sincronização com o Tiny nunca muda os dois. Produto que não veio do Tiny não aceita os dois (400). `precos_por_unidade` troca a lista das unidades: cada uma com `variacao_a_vista` e `variacao_a_prazo` em % (de -100 a 100; negativo é desconto, positivo é acréscimo) sobre o preço de referência (o Preço Portal B2B ou, sem ele, o do Tiny), `ativo` (padrão `true`) e `quantidade` (opcional, maior que zero: a quantidade que vai em cada embalagem dessa unidade). No produto do Tiny, a variação da unidade do produto entra no `preco_a_vista` e no `preco` usados no portal. 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).
|
|
1699
1731
|
*
|
|
1700
1732
|
* `PATCH /produto/{id}`
|
|
1701
1733
|
*/
|
package/dist/portal/tipos.d.ts
CHANGED
|
@@ -382,20 +382,50 @@ export interface CustoNaoConformidade {
|
|
|
382
382
|
}
|
|
383
383
|
export interface DadosInternosProdutoTermotubos {
|
|
384
384
|
alterado_no_tiny?: string | null;
|
|
385
|
+
atualizado_na_intranet?: string | null;
|
|
385
386
|
categoria_completa?: string | null;
|
|
387
|
+
codigo_de_servico?: string | null;
|
|
388
|
+
controla_estoque?: string | null;
|
|
386
389
|
criado_no_tiny?: string | null;
|
|
387
390
|
custo?: number | null;
|
|
388
391
|
custo_medio?: number | null;
|
|
392
|
+
descricao_complementar?: string | null;
|
|
393
|
+
dias_de_preparacao?: number | null;
|
|
389
394
|
disponivel?: number | null;
|
|
395
|
+
embalagem_altura?: number | null;
|
|
396
|
+
embalagem_comprimento?: number | null;
|
|
397
|
+
embalagem_descricao?: string | null;
|
|
398
|
+
embalagem_diametro?: number | null;
|
|
399
|
+
embalagem_largura?: number | null;
|
|
400
|
+
embalagem_tipo?: string | null;
|
|
401
|
+
embalagem_volumes?: number | null;
|
|
390
402
|
estoque_atualizado_em?: string | null;
|
|
403
|
+
estoque_maximo?: number | null;
|
|
404
|
+
estoque_minimo?: number | null;
|
|
405
|
+
garantia?: string | null;
|
|
406
|
+
gtin_embalagem?: string | null;
|
|
391
407
|
id_api: number;
|
|
408
|
+
ipi_classe?: string | null;
|
|
409
|
+
ipi_valor_fixo?: number | null;
|
|
392
410
|
localizacao?: string | null;
|
|
411
|
+
marca?: string | null;
|
|
393
412
|
observacoes?: string | null;
|
|
394
413
|
preco?: number | null;
|
|
414
|
+
produto_pai_tiny_id?: number | null;
|
|
395
415
|
reservado?: number | null;
|
|
396
416
|
saldo?: number | null;
|
|
417
|
+
seo_descricao?: string | null;
|
|
418
|
+
seo_endereco?: string | null;
|
|
419
|
+
seo_palavras_chave?: string | null;
|
|
420
|
+
seo_titulo?: string | null;
|
|
421
|
+
seo_video?: string | null;
|
|
397
422
|
sincronizado_na_api?: string | null;
|
|
423
|
+
situacao?: string | null;
|
|
424
|
+
sob_encomenda?: string | null;
|
|
398
425
|
tiny_id?: number | null;
|
|
426
|
+
unidade?: string | null;
|
|
427
|
+
unidades_por_caixa?: number | null;
|
|
428
|
+
variacao?: string | null;
|
|
399
429
|
}
|
|
400
430
|
export interface DepositoProdutoTermotubos {
|
|
401
431
|
atualizado_em?: string | null;
|
|
@@ -406,6 +436,16 @@ export interface DepositoProdutoTermotubos {
|
|
|
406
436
|
reservado?: number | null;
|
|
407
437
|
saldo?: number | null;
|
|
408
438
|
}
|
|
439
|
+
export interface DescontoDoProduto {
|
|
440
|
+
atualizado_em?: string | null;
|
|
441
|
+
atualizado_por?: string | null;
|
|
442
|
+
estoque_minimo?: number | null;
|
|
443
|
+
origem?: string | null;
|
|
444
|
+
percentual_a_prazo: number;
|
|
445
|
+
percentual_a_vista: number;
|
|
446
|
+
situacao: string;
|
|
447
|
+
valido_ate?: string | null;
|
|
448
|
+
}
|
|
409
449
|
export interface DetalheNaoConformidadeTermotubosParte2 {
|
|
410
450
|
anexos: Array<AnexoNaoConformidade>;
|
|
411
451
|
atualizado_por?: string | null;
|
|
@@ -588,10 +628,13 @@ export interface IndicadoresDeVenda {
|
|
|
588
628
|
}
|
|
589
629
|
export interface ItemDoPedido {
|
|
590
630
|
adicionais?: Array<AdicionalDoItem>;
|
|
631
|
+
atributos_escolhidos_pela_ia?: Array<string>;
|
|
632
|
+
atributos_faltando?: Array<string>;
|
|
591
633
|
escolhido?: OpcaoDoItem | null;
|
|
592
634
|
observacao?: string | null;
|
|
593
635
|
opcoes: Array<OpcaoDoItem>;
|
|
594
636
|
pedido_do_cliente: string;
|
|
637
|
+
produto_sem_estoque?: OpcaoDoItem | null;
|
|
595
638
|
quantidade: number;
|
|
596
639
|
situacao: string;
|
|
597
640
|
}
|
|
@@ -705,8 +748,11 @@ export interface OpcaoDeFiltro {
|
|
|
705
748
|
valor: string;
|
|
706
749
|
}
|
|
707
750
|
export interface OpcaoDoItem {
|
|
751
|
+
cor?: string | null;
|
|
708
752
|
disponivel: boolean;
|
|
709
753
|
imagem_url?: string | null;
|
|
754
|
+
medida?: string | null;
|
|
755
|
+
modelo?: string | null;
|
|
710
756
|
nome: string;
|
|
711
757
|
preco_unitario: number;
|
|
712
758
|
produto_id: string;
|
|
@@ -925,12 +971,16 @@ export interface PaginaPedidoAutoComplete {
|
|
|
925
971
|
export interface PaginaProdutoItensItem {
|
|
926
972
|
ativo: boolean;
|
|
927
973
|
atualizado_em: string;
|
|
974
|
+
calcular_polegada: boolean;
|
|
975
|
+
campos_revisados: Array<string>;
|
|
928
976
|
categoria_tiny?: string | null;
|
|
929
977
|
comprimento?: string | null;
|
|
978
|
+
comprimento_polegada?: string | null;
|
|
930
979
|
comprimento_unidade?: string | null;
|
|
931
980
|
cor?: string | null;
|
|
932
981
|
criado_em: string;
|
|
933
982
|
demonstracao: boolean;
|
|
983
|
+
desconto?: DescontoDoProduto | null;
|
|
934
984
|
descricao?: string | null;
|
|
935
985
|
disponivel: boolean;
|
|
936
986
|
embalagem?: string | null;
|
|
@@ -954,6 +1004,7 @@ export interface PaginaProdutoItensItem {
|
|
|
954
1004
|
lancamento: boolean;
|
|
955
1005
|
marca_tiny?: string | null;
|
|
956
1006
|
medida?: string | null;
|
|
1007
|
+
medida_polegada?: string | null;
|
|
957
1008
|
medida_unidade?: string | null;
|
|
958
1009
|
ncm?: string | null;
|
|
959
1010
|
nome: string;
|
|
@@ -964,10 +1015,14 @@ export interface PaginaProdutoItensItem {
|
|
|
964
1015
|
peso_bruto?: number | null;
|
|
965
1016
|
peso_liquido?: number | null;
|
|
966
1017
|
preco: number;
|
|
1018
|
+
preco_a_prazo_sem_desconto?: number | null;
|
|
967
1019
|
preco_a_vista: number;
|
|
1020
|
+
preco_a_vista_sem_desconto?: number | null;
|
|
968
1021
|
preco_a_vista_tiny?: number | null;
|
|
969
1022
|
preco_portal_b2b?: number | null;
|
|
1023
|
+
preco_portal_b2b_a_prazo?: number | null;
|
|
970
1024
|
preco_tiny?: number | null;
|
|
1025
|
+
precos_por_unidade: Array<PrecoPorUnidade>;
|
|
971
1026
|
quantidade_minima: number;
|
|
972
1027
|
relevancia: number;
|
|
973
1028
|
resumo_caracteristicas?: string | null;
|
|
@@ -1195,6 +1250,13 @@ export interface PedidoVendaTinyAutoComplete {
|
|
|
1195
1250
|
id: number;
|
|
1196
1251
|
rotulo: string;
|
|
1197
1252
|
}
|
|
1253
|
+
export interface PrecoPorUnidade {
|
|
1254
|
+
ativo?: boolean;
|
|
1255
|
+
quantidade?: number | null;
|
|
1256
|
+
unidade: string;
|
|
1257
|
+
variacao_a_prazo?: number | null;
|
|
1258
|
+
variacao_a_vista?: number | null;
|
|
1259
|
+
}
|
|
1198
1260
|
export interface ProblemaFrequente {
|
|
1199
1261
|
problema: string;
|
|
1200
1262
|
quantidade: number;
|
|
@@ -1202,12 +1264,16 @@ export interface ProblemaFrequente {
|
|
|
1202
1264
|
export interface Produto {
|
|
1203
1265
|
ativo: boolean;
|
|
1204
1266
|
atualizado_em: string;
|
|
1267
|
+
calcular_polegada: boolean;
|
|
1268
|
+
campos_revisados: Array<string>;
|
|
1205
1269
|
categoria_tiny?: string | null;
|
|
1206
1270
|
comprimento?: string | null;
|
|
1271
|
+
comprimento_polegada?: string | null;
|
|
1207
1272
|
comprimento_unidade?: string | null;
|
|
1208
1273
|
cor?: string | null;
|
|
1209
1274
|
criado_em: string;
|
|
1210
1275
|
demonstracao: boolean;
|
|
1276
|
+
desconto?: DescontoDoProduto | null;
|
|
1211
1277
|
descricao?: string | null;
|
|
1212
1278
|
disponivel: boolean;
|
|
1213
1279
|
embalagem?: string | null;
|
|
@@ -1231,6 +1297,7 @@ export interface Produto {
|
|
|
1231
1297
|
lancamento: boolean;
|
|
1232
1298
|
marca_tiny?: string | null;
|
|
1233
1299
|
medida?: string | null;
|
|
1300
|
+
medida_polegada?: string | null;
|
|
1234
1301
|
medida_unidade?: string | null;
|
|
1235
1302
|
ncm?: string | null;
|
|
1236
1303
|
nome: string;
|
|
@@ -1241,10 +1308,14 @@ export interface Produto {
|
|
|
1241
1308
|
peso_bruto?: number | null;
|
|
1242
1309
|
peso_liquido?: number | null;
|
|
1243
1310
|
preco: number;
|
|
1311
|
+
preco_a_prazo_sem_desconto?: number | null;
|
|
1244
1312
|
preco_a_vista: number;
|
|
1313
|
+
preco_a_vista_sem_desconto?: number | null;
|
|
1245
1314
|
preco_a_vista_tiny?: number | null;
|
|
1246
1315
|
preco_portal_b2b?: number | null;
|
|
1316
|
+
preco_portal_b2b_a_prazo?: number | null;
|
|
1247
1317
|
preco_tiny?: number | null;
|
|
1318
|
+
precos_por_unidade: Array<PrecoPorUnidade>;
|
|
1248
1319
|
quantidade_minima: number;
|
|
1249
1320
|
relevancia: number;
|
|
1250
1321
|
resumo_caracteristicas?: string | null;
|
|
@@ -1256,6 +1327,7 @@ export interface Produto {
|
|
|
1256
1327
|
}
|
|
1257
1328
|
export interface ProdutoAtualizar {
|
|
1258
1329
|
ativo?: boolean | null;
|
|
1330
|
+
calcular_polegada?: boolean | null;
|
|
1259
1331
|
comprimento?: string | null;
|
|
1260
1332
|
comprimento_unidade?: string | null;
|
|
1261
1333
|
cor?: string | null;
|
|
@@ -1278,6 +1350,8 @@ export interface ProdutoAtualizar {
|
|
|
1278
1350
|
preco?: number | null;
|
|
1279
1351
|
preco_a_vista?: number | null;
|
|
1280
1352
|
preco_portal_b2b?: number | null;
|
|
1353
|
+
preco_portal_b2b_a_prazo?: number | null;
|
|
1354
|
+
precos_por_unidade?: Array<PrecoPorUnidade> | null;
|
|
1281
1355
|
quantidade_minima?: number | null;
|
|
1282
1356
|
relevancia?: number | null;
|
|
1283
1357
|
resumo_caracteristicas?: string | null;
|
package/dist/support/rotas.d.ts
CHANGED
|
@@ -313,7 +313,7 @@ export interface ParametrosDeBuscarPeloFiltroTicket {
|
|
|
313
313
|
/**
|
|
314
314
|
* Anexa um arquivo ou link
|
|
315
315
|
*
|
|
316
|
-
* Exige a permissão `criar` na área `projetos` ou `tickets`. Anexa a uma tarefa (`tarefa_id`) ou ticket (`ticket_id`), nunca aos dois. Mande o arquivo em `arquivo_base64` (com ou sem o prefixo `data:...;base64,`, até 10 MB, `tipo_mime` informa o formato) ou um link em `url` (`http://` ou `https://`, até 1000 caracteres). Com `importar_url: true`, o servidor baixa a imagem de `url` e guarda o arquivo no lugar do link (é o caminho para anexar imagens pelo MCP): só `https://`, sem redirecionamento, servidor de IP público, resposta `image/*` de até 10 MB; o `tipo_mime` vem da resposta. `nome` é obrigatório (até 200). O arquivo vai para o TermoBucket (privado, app `termo-suporte`); se o bucket falhar,
|
|
316
|
+
* Exige a permissão `criar` na área `projetos` ou `tickets`. Anexa a uma tarefa (`tarefa_id`) ou ticket (`ticket_id`), nunca aos dois. Mande o arquivo em `arquivo_base64` (com ou sem o prefixo `data:...;base64,`, até 10 MB, `tipo_mime` informa o formato) ou um link em `url` (`http://` ou `https://`, até 1000 caracteres). Com `importar_url: true`, o servidor baixa a imagem de `url` e guarda o arquivo no lugar do link (é o caminho para anexar imagens pelo MCP): só `https://`, sem redirecionamento, servidor de IP público, resposta `image/*` de até 10 MB; o `tipo_mime` vem da resposta. `nome` é obrigatório (até 200). O arquivo vai para o TermoBucket (privado, app `termo-suporte`); se o bucket falhar, responde `502` e nada é gravado (o arquivo nunca fica no banco). O corpo aceita até 16 MiB. A atividade da tarefa ou do ticket ganha a linha do anexo.
|
|
317
317
|
*
|
|
318
318
|
* `POST /anexo`
|
|
319
319
|
*/
|
|
@@ -329,7 +329,7 @@ export declare function buscar_pelo_filtro_anexo(credencial_de_acesso: Credencia
|
|
|
329
329
|
/**
|
|
330
330
|
* Baixa um anexo pelo id
|
|
331
331
|
*
|
|
332
|
-
* Exige a permissão de leitura na área `projetos` ou `tickets` (qualquer das ações `ler`, `criar`, `editar` ou `deletar` libera a leitura). Devolve os dados do anexo e, quando é arquivo, `url_download`: endereço de download assinado do TermoBucket (arquivo privado do app `termo-suporte`), válido por 15 minutos. `
|
|
332
|
+
* Exige a permissão de leitura na área `projetos` ou `tickets` (qualquer das ações `ler`, `criar`, `editar` ou `deletar` libera a leitura). Devolve os dados do anexo e, quando é arquivo, `url_download`: endereço de download assinado do TermoBucket (arquivo privado do app `termo-suporte`), válido por 15 minutos. `url_download` fica vazia quando o anexo é um link.
|
|
333
333
|
*
|
|
334
334
|
* `GET /anexo/{id}`
|
|
335
335
|
*/
|
package/dist/support/rotas.js
CHANGED
|
@@ -4,7 +4,7 @@ import { TERMO_SUPPORT as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Anexa um arquivo ou link
|
|
6
6
|
*
|
|
7
|
-
* Exige a permissão `criar` na área `projetos` ou `tickets`. Anexa a uma tarefa (`tarefa_id`) ou ticket (`ticket_id`), nunca aos dois. Mande o arquivo em `arquivo_base64` (com ou sem o prefixo `data:...;base64,`, até 10 MB, `tipo_mime` informa o formato) ou um link em `url` (`http://` ou `https://`, até 1000 caracteres). Com `importar_url: true`, o servidor baixa a imagem de `url` e guarda o arquivo no lugar do link (é o caminho para anexar imagens pelo MCP): só `https://`, sem redirecionamento, servidor de IP público, resposta `image/*` de até 10 MB; o `tipo_mime` vem da resposta. `nome` é obrigatório (até 200). O arquivo vai para o TermoBucket (privado, app `termo-suporte`); se o bucket falhar,
|
|
7
|
+
* Exige a permissão `criar` na área `projetos` ou `tickets`. Anexa a uma tarefa (`tarefa_id`) ou ticket (`ticket_id`), nunca aos dois. Mande o arquivo em `arquivo_base64` (com ou sem o prefixo `data:...;base64,`, até 10 MB, `tipo_mime` informa o formato) ou um link em `url` (`http://` ou `https://`, até 1000 caracteres). Com `importar_url: true`, o servidor baixa a imagem de `url` e guarda o arquivo no lugar do link (é o caminho para anexar imagens pelo MCP): só `https://`, sem redirecionamento, servidor de IP público, resposta `image/*` de até 10 MB; o `tipo_mime` vem da resposta. `nome` é obrigatório (até 200). O arquivo vai para o TermoBucket (privado, app `termo-suporte`); se o bucket falhar, responde `502` e nada é gravado (o arquivo nunca fica no banco). O corpo aceita até 16 MiB. A atividade da tarefa ou do ticket ganha a linha do anexo.
|
|
8
8
|
*
|
|
9
9
|
* `POST /anexo`
|
|
10
10
|
*/
|
|
@@ -38,7 +38,7 @@ export function buscar_pelo_filtro_anexo(credencial_de_acesso, parametros = {},
|
|
|
38
38
|
/**
|
|
39
39
|
* Baixa um anexo pelo id
|
|
40
40
|
*
|
|
41
|
-
* Exige a permissão de leitura na área `projetos` ou `tickets` (qualquer das ações `ler`, `criar`, `editar` ou `deletar` libera a leitura). Devolve os dados do anexo e, quando é arquivo, `url_download`: endereço de download assinado do TermoBucket (arquivo privado do app `termo-suporte`), válido por 15 minutos. `
|
|
41
|
+
* Exige a permissão de leitura na área `projetos` ou `tickets` (qualquer das ações `ler`, `criar`, `editar` ou `deletar` libera a leitura). Devolve os dados do anexo e, quando é arquivo, `url_download`: endereço de download assinado do TermoBucket (arquivo privado do app `termo-suporte`), válido por 15 minutos. `url_download` fica vazia quando o anexo é um link.
|
|
42
42
|
*
|
|
43
43
|
* `GET /anexo/{id}`
|
|
44
44
|
*/
|
package/dist/support/tipos.d.ts
CHANGED
|
@@ -18,10 +18,6 @@ export interface AnexoAtualizar {
|
|
|
18
18
|
nome: string;
|
|
19
19
|
}
|
|
20
20
|
export interface AnexoComConteudoParte2 {
|
|
21
|
-
/**
|
|
22
|
-
* O arquivo em base64, só enquanto ele ainda não foi levado ao TermoBucket.
|
|
23
|
-
*/
|
|
24
|
-
conteudo_base64?: string | null;
|
|
25
21
|
/**
|
|
26
22
|
* URL de download do arquivo no TermoBucket, assinada por 15 minutos (vazia quando o anexo é um link).
|
|
27
23
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "termo_core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
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>",
|