termo_core 0.1.5 → 0.1.6

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.
@@ -74,7 +74,7 @@ export declare function baixar_conteudo_arquivo(id: string, parametros?: Paramet
74
74
  /**
75
75
  * Envia o conteúdo do arquivo
76
76
  *
77
- * Pública, sem token: o acesso vem do link. É a `url_envio` devolvida ao criar o arquivo (`expira` e `assinatura` obrigatórios, 15 minutos). O corpo é o conteúdo cru, com o `Content-Type` e o `Content-Length` informados ao criar; o TermoBucket grava no R2 pelo binding do Worker. Enviar de novo pelo mesmo link substitui o conteúdo. O tamanho fica limitado também pelo corpo máximo de requisição do plano do Cloudflare Workers (100 MB no Free e no Pro).
77
+ * Pública, sem token: o acesso vem do link. É a `url_envio` devolvida ao criar o arquivo (`expira` e `assinatura` obrigatórios, 15 minutos). O corpo é o conteúdo cru, com o `Content-Type` e o `Content-Length` informados ao criar; o TermoBucket grava no R2. Enviar de novo pelo mesmo link substitui o conteúdo. O tamanho fica limitado também pelo corpo máximo de requisição do proxy da Cloudflare (100 MB).
78
78
  *
79
79
  * `PUT /arquivo/{id}/conteudo`
80
80
  */
@@ -90,7 +90,7 @@ export declare function privado_buscar_paginador_arquivo(credencial_de_acesso: C
90
90
  /**
91
91
  * Registra um arquivo privado e devolve a URL de envio
92
92
  *
93
- * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo privado do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2 pelo binding do Worker. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
93
+ * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo privado do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
94
94
  *
95
95
  * `POST /private/{app}`
96
96
  */
@@ -122,7 +122,7 @@ export declare function publico_buscar_paginador_arquivo(credencial_de_acesso: C
122
122
  /**
123
123
  * Registra um arquivo público e devolve a URL de envio
124
124
  *
125
- * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo público do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2 pelo binding do Worker. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
125
+ * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo público do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
126
126
  *
127
127
  * `POST /public/{app}`
128
128
  */
@@ -69,7 +69,7 @@ export function baixar_conteudo_arquivo(id, parametros = {}, opcoes_da_chamada)
69
69
  /**
70
70
  * Envia o conteúdo do arquivo
71
71
  *
72
- * Pública, sem token: o acesso vem do link. É a `url_envio` devolvida ao criar o arquivo (`expira` e `assinatura` obrigatórios, 15 minutos). O corpo é o conteúdo cru, com o `Content-Type` e o `Content-Length` informados ao criar; o TermoBucket grava no R2 pelo binding do Worker. Enviar de novo pelo mesmo link substitui o conteúdo. O tamanho fica limitado também pelo corpo máximo de requisição do plano do Cloudflare Workers (100 MB no Free e no Pro).
72
+ * Pública, sem token: o acesso vem do link. É a `url_envio` devolvida ao criar o arquivo (`expira` e `assinatura` obrigatórios, 15 minutos). O corpo é o conteúdo cru, com o `Content-Type` e o `Content-Length` informados ao criar; o TermoBucket grava no R2. Enviar de novo pelo mesmo link substitui o conteúdo. O tamanho fica limitado também pelo corpo máximo de requisição do proxy da Cloudflare (100 MB).
73
73
  *
74
74
  * `PUT /arquivo/{id}/conteudo`
75
75
  */
@@ -102,7 +102,7 @@ export function privado_buscar_paginador_arquivo(credencial_de_acesso, app, para
102
102
  /**
103
103
  * Registra um arquivo privado e devolve a URL de envio
104
104
  *
105
- * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo privado do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2 pelo binding do Worker. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
105
+ * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo privado do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
106
106
  *
107
107
  * `POST /private/{app}`
108
108
  */
@@ -168,7 +168,7 @@ export function publico_buscar_paginador_arquivo(credencial_de_acesso, app, para
168
168
  /**
169
169
  * Registra um arquivo público e devolve a URL de envio
170
170
  *
171
- * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo público do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2 pelo binding do Worker. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
171
+ * API de arquivos dos apps, com o token de aplicativo do TermoAuth (o painel não usa). Registra o arquivo público do aplicativo do token e devolve uma URL de envio assinada, válida por 15 minutos (`PUT /arquivo/{id}/conteudo`, sem token), para o app enviar o conteúdo com `PUT` e os `cabecalhos` indicados. `nome_original` é obrigatório (até 255 caracteres); `tipo` é o tipo MIME exato (`tipo/subtipo`, gravado em minúsculas) e precisa estar entre os tipos permitidos do aplicativo; `tamanho` é o tamanho em bytes, maior que zero e até o `tamanho_maximo` do aplicativo. O envio só é aceito com o `Content-Type` e o `Content-Length` informados aqui, e o TermoBucket grava no R2. No primeiro pedido, o aplicativo é cadastrado sozinho com os limites padrão (50 MiB, `image/*` e `application/pdf`).
172
172
  *
173
173
  * `POST /public/{app}`
174
174
  */
@@ -1327,7 +1327,7 @@ export declare function buscar_pelo_id_pedido_inteligente(credencial_de_acesso:
1327
1327
  /**
1328
1328
  * Grava a revisão do cliente
1329
1329
  *
1330
- * Exige a permissão `editar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Só vale com `status` `pronto`. `itens` tem uma escolha por item do pedido, na mesma ordem: `produto_id` é o produto escolhido (nulo tira o item da cotação), `quantidade` vai de 0 a 9999 (acima de zero) e `remover` (opcional, padrão `false`) tira o item do pedido. O produto pode ser o `escolhido`, uma das `opcoes` ou qualquer produto ativo do catálogo; neste último caso a unidade guarda o vínculo entre o nome que o cliente escreveu e o produto, e os próximos pedidos com o mesmo nome já chegam com ele.
1330
+ * Exige a permissão `editar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Só vale com `status` `pronto`. Mande `itens`, `incluir_pedido_id` ou os dois. `itens` tem uma escolha por item do pedido, na mesma ordem: `produto_id` é o produto escolhido (nulo tira o item da cotação), `quantidade` vai de 0 a 9999 (acima de zero), `remover` (opcional, padrão `false`) tira o item do pedido e `adicionais` (opcional) são outros produtos para o mesmo item, cada um com `produto_id` e `quantidade`, que entram na cotação junto com o escolhido (exigem `produto_id` e não podem repetir produto). O produto pode ser o `escolhido`, uma das `opcoes` ou qualquer produto ativo do catálogo; neste último caso, com um produto só no item, a unidade guarda o vínculo entre o nome que o cliente escreveu e o produto, e os próximos pedidos com o mesmo nome já chegam com ele. `incluir_pedido_id` é outro pedido `pronto` da mesma unidade (mandado pelo `POST` com os itens a acrescentar): os itens dele entram no fim deste, o texto e os anexos se somam aos deste e ele sai da lista (até 100 itens no pedido).
1331
1331
  *
1332
1332
  * `PATCH /pedido_inteligente/{id}`
1333
1333
  */
@@ -1543,7 +1543,7 @@ export declare function buscar_pelo_id_unidade(credencial_de_acesso: CredencialD
1543
1543
  /**
1544
1544
  * Atualiza uma unidade
1545
1545
  *
1546
- * Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão `editar` no módulo `Configuracoes`. Só colaborador interno muda `matriz_id`, `status`, `limite_faturamento`, `aviso_limite_percentual` e `cliente_id` (envie `null` em `matriz_id`, `limite_faturamento` ou `cliente_id` para apagar). `cliente_id` vincula a unidade a um cliente, que passa a ver a unidade no portal. Uma unidade com filiais não vira filial e não pode ser matriz de si mesma. Unidade fora da sessão responde 404; o CNPJ não muda. Atualização parcial: campo ausente mantém o valor atual. Campos: `razao_social` até 150 caracteres; `nome_fantasia` até 150 caracteres; `inscricao_estadual` até 30 caracteres; `inscricao_municipal` até 30 caracteres; `telefone_comercial` com 10 ou 11 dígitos; `email_comercial` precisa ser válido; `site` é o endereço do site (URL válida); `responsavel_principal` até 150 caracteres; `contato_financeiro` até 150 caracteres; `contato_compras` até 150 caracteres.
1546
+ * Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão `editar` no módulo `Configuracoes`. Só colaborador interno muda `matriz_id`, `status`, `limite_faturamento`, `aviso_limite_percentual` e `cliente_id` (envie `null` em `matriz_id`, `limite_faturamento` ou `cliente_id` para apagar). `cliente_id` vincula a unidade a um cliente, que passa a ver a unidade no portal. `imagem` é a logo da unidade: o endereço público devolvido por `POST /arquivo` com `pasta=unidades` (TermoBucket); envie `null` para tirar a imagem, e a anterior sai do TermoBucket quando nenhuma outra unidade a usa. Uma unidade com filiais não vira filial e não pode ser matriz de si mesma. Unidade fora da sessão responde 404; o CNPJ não muda. Atualização parcial: campo ausente mantém o valor atual. Campos: `razao_social` até 150 caracteres; `nome_fantasia` até 150 caracteres; `inscricao_estadual` até 30 caracteres; `inscricao_municipal` até 30 caracteres; `telefone_comercial` com 10 ou 11 dígitos; `email_comercial` precisa ser válido; `site` é o endereço do site (URL válida); `responsavel_principal` até 150 caracteres; `contato_financeiro` até 150 caracteres; `contato_compras` até 150 caracteres.
1547
1547
  *
1548
1548
  * `PATCH /unidade/{id}`
1549
1549
  */
@@ -1460,7 +1460,7 @@ export function buscar_pelo_id_pedido_inteligente(credencial_de_acesso, id, opco
1460
1460
  /**
1461
1461
  * Grava a revisão do cliente
1462
1462
  *
1463
- * Exige a permissão `editar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Só vale com `status` `pronto`. `itens` tem uma escolha por item do pedido, na mesma ordem: `produto_id` é o produto escolhido (nulo tira o item da cotação), `quantidade` vai de 0 a 9999 (acima de zero) e `remover` (opcional, padrão `false`) tira o item do pedido. O produto pode ser o `escolhido`, uma das `opcoes` ou qualquer produto ativo do catálogo; neste último caso a unidade guarda o vínculo entre o nome que o cliente escreveu e o produto, e os próximos pedidos com o mesmo nome já chegam com ele.
1463
+ * Exige a permissão `editar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Só vale com `status` `pronto`. Mande `itens`, `incluir_pedido_id` ou os dois. `itens` tem uma escolha por item do pedido, na mesma ordem: `produto_id` é o produto escolhido (nulo tira o item da cotação), `quantidade` vai de 0 a 9999 (acima de zero), `remover` (opcional, padrão `false`) tira o item do pedido e `adicionais` (opcional) são outros produtos para o mesmo item, cada um com `produto_id` e `quantidade`, que entram na cotação junto com o escolhido (exigem `produto_id` e não podem repetir produto). O produto pode ser o `escolhido`, uma das `opcoes` ou qualquer produto ativo do catálogo; neste último caso, com um produto só no item, a unidade guarda o vínculo entre o nome que o cliente escreveu e o produto, e os próximos pedidos com o mesmo nome já chegam com ele. `incluir_pedido_id` é outro pedido `pronto` da mesma unidade (mandado pelo `POST` com os itens a acrescentar): os itens dele entram no fim deste, o texto e os anexos se somam aos deste e ele sai da lista (até 100 itens no pedido).
1464
1464
  *
1465
1465
  * `PATCH /pedido_inteligente/{id}`
1466
1466
  */
@@ -1913,7 +1913,7 @@ export function buscar_pelo_id_unidade(credencial_de_acesso, id, opcoes_da_chama
1913
1913
  /**
1914
1914
  * Atualiza uma unidade
1915
1915
  *
1916
- * Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão `editar` no módulo `Configuracoes`. Só colaborador interno muda `matriz_id`, `status`, `limite_faturamento`, `aviso_limite_percentual` e `cliente_id` (envie `null` em `matriz_id`, `limite_faturamento` ou `cliente_id` para apagar). `cliente_id` vincula a unidade a um cliente, que passa a ver a unidade no portal. Uma unidade com filiais não vira filial e não pode ser matriz de si mesma. Unidade fora da sessão responde 404; o CNPJ não muda. Atualização parcial: campo ausente mantém o valor atual. Campos: `razao_social` até 150 caracteres; `nome_fantasia` até 150 caracteres; `inscricao_estadual` até 30 caracteres; `inscricao_municipal` até 30 caracteres; `telefone_comercial` com 10 ou 11 dígitos; `email_comercial` precisa ser válido; `site` é o endereço do site (URL válida); `responsavel_principal` até 150 caracteres; `contato_financeiro` até 150 caracteres; `contato_compras` até 150 caracteres.
1916
+ * Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão `editar` no módulo `Configuracoes`. Só colaborador interno muda `matriz_id`, `status`, `limite_faturamento`, `aviso_limite_percentual` e `cliente_id` (envie `null` em `matriz_id`, `limite_faturamento` ou `cliente_id` para apagar). `cliente_id` vincula a unidade a um cliente, que passa a ver a unidade no portal. `imagem` é a logo da unidade: o endereço público devolvido por `POST /arquivo` com `pasta=unidades` (TermoBucket); envie `null` para tirar a imagem, e a anterior sai do TermoBucket quando nenhuma outra unidade a usa. Uma unidade com filiais não vira filial e não pode ser matriz de si mesma. Unidade fora da sessão responde 404; o CNPJ não muda. Atualização parcial: campo ausente mantém o valor atual. Campos: `razao_social` até 150 caracteres; `nome_fantasia` até 150 caracteres; `inscricao_estadual` até 30 caracteres; `inscricao_municipal` até 30 caracteres; `telefone_comercial` com 10 ou 11 dígitos; `email_comercial` precisa ser válido; `site` é o endereço do site (URL válida); `responsavel_principal` até 150 caracteres; `contato_financeiro` até 150 caracteres; `contato_compras` até 150 caracteres.
1917
1917
  *
1918
1918
  * `PATCH /unidade/{id}`
1919
1919
  */
@@ -1,3 +1,11 @@
1
+ export interface AdicionalDoItem {
2
+ produto: OpcaoDoItem;
3
+ quantidade: number;
4
+ }
5
+ export interface AdicionalEscolhido {
6
+ produto_id: string;
7
+ quantidade: number;
8
+ }
1
9
  export interface AnexoDoPedido {
2
10
  arquivo_id?: string | null;
3
11
  nome: string;
@@ -455,6 +463,7 @@ export interface EnderecoEntrega {
455
463
  numero?: string | null;
456
464
  }
457
465
  export interface EscolhaDoItem {
466
+ adicionais?: Array<AdicionalEscolhido>;
458
467
  produto_id?: string | null;
459
468
  quantidade: number;
460
469
  remover?: boolean;
@@ -571,6 +580,7 @@ export interface IndicadoresDeVenda {
571
580
  por_vendedor: Array<VendaAgrupada>;
572
581
  }
573
582
  export interface ItemDoPedido {
583
+ adicionais?: Array<AdicionalDoItem>;
574
584
  escolhido?: OpcaoDoItem | null;
575
585
  observacao?: string | null;
576
586
  opcoes: Array<OpcaoDoItem>;
@@ -990,6 +1000,7 @@ export interface PaginaUnidadeItensItem {
990
1000
  email_comercial?: string | null;
991
1001
  filiais: Array<UnidadeReferencia>;
992
1002
  id: string;
1003
+ imagem?: string | null;
993
1004
  inscricao_estadual?: string | null;
994
1005
  inscricao_municipal?: string | null;
995
1006
  limite_faturamento?: number | null;
@@ -1101,7 +1112,8 @@ export interface PedidoInteligente {
1101
1112
  unidade_id: string;
1102
1113
  }
1103
1114
  export interface PedidoInteligenteAtualizar {
1104
- itens: Array<EscolhaDoItem>;
1115
+ incluir_pedido_id?: string | null;
1116
+ itens?: Array<EscolhaDoItem> | null;
1105
1117
  }
1106
1118
  export interface PedidoInteligenteEnvio {
1107
1119
  arquivo: Array<string>;
@@ -1432,6 +1444,7 @@ export interface Unidade {
1432
1444
  email_comercial?: string | null;
1433
1445
  filiais: Array<UnidadeReferencia>;
1434
1446
  id: string;
1447
+ imagem?: string | null;
1435
1448
  inscricao_estadual?: string | null;
1436
1449
  inscricao_municipal?: string | null;
1437
1450
  limite_faturamento?: number | null;
@@ -1451,6 +1464,7 @@ export interface UnidadeAtualizar {
1451
1464
  contato_compras?: string | null;
1452
1465
  contato_financeiro?: string | null;
1453
1466
  email_comercial?: string | null;
1467
+ imagem?: string | null;
1454
1468
  inscricao_estadual?: string | null;
1455
1469
  inscricao_municipal?: string | null;
1456
1470
  limite_faturamento?: number | null;
@@ -1489,12 +1503,14 @@ export type UnidadeCriarTiny = Record<string, unknown>;
1489
1503
  export interface UnidadeDoCliente {
1490
1504
  cnpj: string;
1491
1505
  id: string;
1506
+ imagem?: string | null;
1492
1507
  razao_social: string;
1493
1508
  status?: string | null;
1494
1509
  }
1495
1510
  export interface UnidadeReferencia {
1496
1511
  cnpj: string;
1497
1512
  id: string;
1513
+ imagem?: string | null;
1498
1514
  razao_social: string;
1499
1515
  }
1500
1516
  export interface VendaAgrupada {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termo_core",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
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>",