termo_core 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -187,6 +187,7 @@ export interface ParametrosDeBuscarPeloFiltroContato {
187
187
  export interface ParametrosDeBuscarPaginadorCotacao {
188
188
  unidade_id?: string;
189
189
  status?: string;
190
+ origem?: string;
190
191
  busca?: string;
191
192
  inicio?: string;
192
193
  fim?: string;
@@ -206,8 +207,8 @@ export interface ParametrosDeBuscarAutoCompleteCotacao {
206
207
  */
207
208
  export interface ParametrosDeBuscarPeloFiltroCotacao {
208
209
  unidade_id?: string;
209
- autor_cliente_id?: string;
210
210
  status?: string;
211
+ origem?: string;
211
212
  pagina?: number;
212
213
  }
213
214
  /**
@@ -216,6 +217,7 @@ export interface ParametrosDeBuscarPeloFiltroCotacao {
216
217
  export interface ParametrosDeBuscarInformacoesPaginadorCotacao {
217
218
  unidade_id?: string;
218
219
  status?: string;
220
+ origem?: string;
219
221
  busca?: string;
220
222
  inicio?: string;
221
223
  fim?: string;
@@ -420,6 +422,14 @@ export interface ParametrosDeBuscarPeloFiltroPedido {
420
422
  entregue?: boolean;
421
423
  pagina?: number;
422
424
  }
425
+ /**
426
+ * Parâmetros de consulta e de cabeçalho de `/pedido_inteligente/filtro`.
427
+ */
428
+ export interface ParametrosDeBuscarPeloFiltroPedidoInteligente {
429
+ unidade_id?: string;
430
+ status?: string;
431
+ pagina?: number;
432
+ }
423
433
  /**
424
434
  * Parâmetros de consulta e de cabeçalho de `/pedido_venda`.
425
435
  */
@@ -1116,7 +1126,7 @@ export declare function deletar_pelo_id_contato(credencial_de_acesso: Credencial
1116
1126
  /**
1117
1127
  * Lista uma página de cotações
1118
1128
  *
1119
- * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve só o array da página, até 50 cotações, das mais novas para as mais antigas; o total, as páginas e as contagens por situação vêm de `GET /cotacao/paginador`, com os mesmos filtros. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. Filtros opcionais: `status` (um dos 5 valores, senão 400 `Status inválido`); `busca` procura o número (C-1048 ou 1048), o SKU ou o nome de um item e a razão social da unidade; `inicio`/`fim` são datas AAAA-MM-DD do envio, em Brasília, inclusivas; `cursor` é o id da última cotação da página anterior.
1129
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve só o array da página, até 50 cotações, das mais novas para as mais antigas; o total, as páginas e as contagens por situação vêm de `GET /cotacao/paginador`, com os mesmos filtros. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. Filtros opcionais: `status` (um dos 5 valores, senão 400 `Status inválido`); `busca` procura o número (C-1048 ou 1048), o SKU ou o nome de um item e a razão social da unidade; `inicio`/`fim` são datas AAAA-MM-DD do envio, em Brasília, inclusivas; `origem` (`carrinho`, `pedido_inteligente`) é exata; `cursor` é o id da última cotação da página anterior.
1120
1130
  *
1121
1131
  * `GET /cotacao`
1122
1132
  */
@@ -1124,7 +1134,7 @@ export declare function buscar_paginador_cotacao(credencial_de_acesso: Credencia
1124
1134
  /**
1125
1135
  * Cria uma cotação (carrinho enviado)
1126
1136
  *
1127
- * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta a cotação no servidor a partir dos itens (`produto_id`, `quantidade` acima de zero e até 9999, `embalagem_fechada`, `preco_unitario` visto pelo cliente), com 1 a 200 itens e sem produto repetido. Recalcula preços por faixa, confere `total_esperado` e grava com o status inicial. A unidade precisa ser da sessão (colaborador interno acessa todas) e, para quem não é colaborador interno, o autor é sempre quem chama. `acima_do_limite` indica que a cotação passa o limite de faturamento da unidade. Campos: `unidade_id` (uuid) é a unidade compradora, da sessão; `autor_cliente_id` é a pessoa autora (uuid; para quem não é colaborador interno vale sempre a própria pessoa); `itens` é a lista de 1 a 200 itens, cada um com `produto_id`, `quantidade`, `embalagem_fechada` e `preco_unitario`; `economia_tier` é a economia do grupo de cliente vista no carrinho (decimal, informativo); `carrinho_id` (opcional) é o carrinho aberto da unidade de onde os itens saíram: todo item precisa estar nele, o carrinho fecha junto com a cotação e os itens que não foram cotados seguem num carrinho novo; `endereco_id` (opcional) é um endereço de entrega da unidade, copiado para `endereco_entrega`; `observacao` (opcional) tem até 1000 caracteres. A cotação nasce com `numero` sequencial (exibido como C-1001) e `valida_ate` = hoje em Brasília + `cotacao_validade_dias` de Configurações (15 sem a chave).
1137
+ * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta a cotação no servidor a partir dos itens (`produto_id`, `quantidade` acima de zero e até 9999, `embalagem_fechada`, `preco_unitario` visto pelo cliente), com 1 a 200 itens e sem produto repetido. Recalcula preços por faixa, confere `total_esperado` e grava com o status inicial. A unidade precisa ser da sessão (colaborador interno acessa todas) e, para quem não é colaborador interno, o autor é sempre quem chama. `acima_do_limite` indica que a cotação passa o limite de faturamento da unidade. Campos: `unidade_id` (uuid) é a unidade compradora, da sessão, e o cliente da cotação é sempre o cliente dessa unidade (o nome dele fica em `autor_nome`); `itens` é a lista de 1 a 200 itens, cada um com `produto_id`, `quantidade`, `embalagem_fechada` e `preco_unitario`; `economia_tier` é a economia do grupo de cliente vista no carrinho (decimal, informativo); `carrinho_id` (opcional) é o carrinho aberto da unidade de onde os itens saíram: todo item precisa estar nele, o carrinho fecha junto com a cotação e os itens que não foram cotados seguem num carrinho novo; `pedido_inteligente_id` (opcional, nunca junto com `carrinho_id`) é o pedido inteligente revisado de onde os itens saíram: ele precisa estar `pronto`, todo item precisa ser um produto confirmado na revisão, a cotação sai com `origem` `pedido_inteligente` e o pedido vira `cotado`; sem ele, `origem` é `carrinho`; `endereco_id` (opcional) é um endereço de entrega da unidade, copiado para `endereco_entrega`; `observacao` (opcional) tem até 1000 caracteres. A cotação nasce com `numero` sequencial (exibido como C-1001) e `valida_ate` = hoje em Brasília + `cotacao_validade_dias` de Configurações (15 sem a chave).
1128
1138
  *
1129
1139
  * `POST /cotacao`
1130
1140
  */
@@ -1140,7 +1150,7 @@ export declare function buscar_auto_complete_cotacao(credencial_de_acesso: Crede
1140
1150
  /**
1141
1151
  * Busca cotações por filtro
1142
1152
  *
1143
- * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve as cotações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), das mais novas para as mais antigas. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. `autor_cliente_id` e `status` (`rascunho`, `esperando_aprovacao`, `concluido`, `nao_aprovado`, `em_transporte`) são exatos.
1153
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve as cotações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), das mais novas para as mais antigas. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. `origem` (`carrinho`, `pedido_inteligente`) e `status` (`rascunho`, `esperando_aprovacao`, `concluido`, `nao_aprovado`, `em_transporte`) são exatos.
1144
1154
  *
1145
1155
  * `GET /cotacao/filtro`
1146
1156
  */
@@ -1457,6 +1467,46 @@ export declare function atualizar_pelo_id_pedido(credencial_de_acesso: Credencia
1457
1467
  * `DELETE /pedido/{id}`
1458
1468
  */
1459
1469
  export declare function deletar_pelo_id_pedido(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
1470
+ /**
1471
+ * Envia um pedido para a IA montar
1472
+ *
1473
+ * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Formulário `multipart/form-data` com `unidade_id` (uma unidade da sessão), `texto` (opcional, até 4000 caracteres) e até 5 campos `arquivo` (áudio MP3, M4A, OGG, OPUS, WAV ou WEBM; PDF; foto PNG, JPG ou WEBP; planilha XLSX ou CSV), cada um com até 20 MB e o envio inteiro com até 25 MB; é preciso mandar o texto ou ao menos um anexo. Grava o pedido com `status` `analisando` e responde na hora; a análise roda no servidor: os anexos vão para o TermoBucket (privados), tudo vira texto (PDF e planilha no próprio Portal, foto, PDF escaneado e áudio pelo TermoAI) e a IA de texto escolhida em Provedores procura cada item no catálogo e no boletim técnico. Acompanhe por `GET /pedido_inteligente/{id}` até `status` virar `pronto` (com os `itens` para revisar) ou `erro` (com o motivo em `erro`). Cada unidade manda no máximo 20 pedidos por hora.
1474
+ *
1475
+ * `POST /pedido_inteligente`
1476
+ */
1477
+ export declare function criar_pedido_inteligente(credencial_de_acesso: CredencialDeAcesso, formulario: FormData, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PedidoInteligente>;
1478
+ /**
1479
+ * Busca pedidos inteligentes por filtro
1480
+ *
1481
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve os pedidos não excluídos, até 50 por página (`pagina`, a partir de 1, padrão 1), dos mais novos para os mais antigos. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todos. `status` (`analisando`, `pronto`, `cotado`, `erro`) é exato; uma análise parada há mais de 10 minutos conta como `erro`.
1482
+ *
1483
+ * `GET /pedido_inteligente/filtro`
1484
+ */
1485
+ export declare function buscar_pelo_filtro_pedido_inteligente(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPeloFiltroPedidoInteligente, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.PedidoInteligente>>;
1486
+ /**
1487
+ * Busca um pedido inteligente pelo id
1488
+ *
1489
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Pedido de uma unidade fora da sessão responde 404, como se não existisse. Depois da análise, cada anexo guardado traz `url`, um link de download do TermoBucket que vale 15 minutos. Cada item traz `pedido_do_cliente` (o trecho que o cliente escreveu), `situacao` (`encontrado`, `escolher`, `indisponivel` ou `nao_encontrado`), `quantidade`, `escolhido`, `opcoes` e `observacao` (como a IA entendeu o item); `cotacao_id` aparece quando o pedido já virou cotação.
1490
+ *
1491
+ * `GET /pedido_inteligente/{id}`
1492
+ */
1493
+ export declare function buscar_pelo_id_pedido_inteligente(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PedidoInteligente>;
1494
+ /**
1495
+ * Grava a revisão do cliente
1496
+ *
1497
+ * 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, entre o `escolhido` e as `opcoes` daquele item (nulo tira o item da cotação), e `quantidade` vai de 0 a 9999 (acima de zero).
1498
+ *
1499
+ * `PATCH /pedido_inteligente/{id}`
1500
+ */
1501
+ export declare function atualizar_pelo_id_pedido_inteligente(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.PedidoInteligenteAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PedidoInteligente>;
1502
+ /**
1503
+ * Cancela um pedido inteligente
1504
+ *
1505
+ * Exige a permissão `excluir` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Exclusão lógica; uma análise em andamento para de gravar. O pedido que já virou cotação não sai (409).
1506
+ *
1507
+ * `DELETE /pedido_inteligente/{id}`
1508
+ */
1509
+ export declare function deletar_pelo_id_pedido_inteligente(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
1460
1510
  /**
1461
1511
  * Lista os pedidos de venda do ERP
1462
1512
  *
@@ -790,7 +790,7 @@ export function deletar_pelo_id_contato(credencial_de_acesso, id, opcoes_da_cham
790
790
  /**
791
791
  * Lista uma página de cotações
792
792
  *
793
- * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve só o array da página, até 50 cotações, das mais novas para as mais antigas; o total, as páginas e as contagens por situação vêm de `GET /cotacao/paginador`, com os mesmos filtros. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. Filtros opcionais: `status` (um dos 5 valores, senão 400 `Status inválido`); `busca` procura o número (C-1048 ou 1048), o SKU ou o nome de um item e a razão social da unidade; `inicio`/`fim` são datas AAAA-MM-DD do envio, em Brasília, inclusivas; `cursor` é o id da última cotação da página anterior.
793
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve só o array da página, até 50 cotações, das mais novas para as mais antigas; o total, as páginas e as contagens por situação vêm de `GET /cotacao/paginador`, com os mesmos filtros. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. Filtros opcionais: `status` (um dos 5 valores, senão 400 `Status inválido`); `busca` procura o número (C-1048 ou 1048), o SKU ou o nome de um item e a razão social da unidade; `inicio`/`fim` são datas AAAA-MM-DD do envio, em Brasília, inclusivas; `origem` (`carrinho`, `pedido_inteligente`) é exata; `cursor` é o id da última cotação da página anterior.
794
794
  *
795
795
  * `GET /cotacao`
796
796
  */
@@ -807,7 +807,7 @@ export function buscar_paginador_cotacao(credencial_de_acesso, parametros = {},
807
807
  /**
808
808
  * Cria uma cotação (carrinho enviado)
809
809
  *
810
- * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta a cotação no servidor a partir dos itens (`produto_id`, `quantidade` acima de zero e até 9999, `embalagem_fechada`, `preco_unitario` visto pelo cliente), com 1 a 200 itens e sem produto repetido. Recalcula preços por faixa, confere `total_esperado` e grava com o status inicial. A unidade precisa ser da sessão (colaborador interno acessa todas) e, para quem não é colaborador interno, o autor é sempre quem chama. `acima_do_limite` indica que a cotação passa o limite de faturamento da unidade. Campos: `unidade_id` (uuid) é a unidade compradora, da sessão; `autor_cliente_id` é a pessoa autora (uuid; para quem não é colaborador interno vale sempre a própria pessoa); `itens` é a lista de 1 a 200 itens, cada um com `produto_id`, `quantidade`, `embalagem_fechada` e `preco_unitario`; `economia_tier` é a economia do grupo de cliente vista no carrinho (decimal, informativo); `carrinho_id` (opcional) é o carrinho aberto da unidade de onde os itens saíram: todo item precisa estar nele, o carrinho fecha junto com a cotação e os itens que não foram cotados seguem num carrinho novo; `endereco_id` (opcional) é um endereço de entrega da unidade, copiado para `endereco_entrega`; `observacao` (opcional) tem até 1000 caracteres. A cotação nasce com `numero` sequencial (exibido como C-1001) e `valida_ate` = hoje em Brasília + `cotacao_validade_dias` de Configurações (15 sem a chave).
810
+ * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Monta a cotação no servidor a partir dos itens (`produto_id`, `quantidade` acima de zero e até 9999, `embalagem_fechada`, `preco_unitario` visto pelo cliente), com 1 a 200 itens e sem produto repetido. Recalcula preços por faixa, confere `total_esperado` e grava com o status inicial. A unidade precisa ser da sessão (colaborador interno acessa todas) e, para quem não é colaborador interno, o autor é sempre quem chama. `acima_do_limite` indica que a cotação passa o limite de faturamento da unidade. Campos: `unidade_id` (uuid) é a unidade compradora, da sessão, e o cliente da cotação é sempre o cliente dessa unidade (o nome dele fica em `autor_nome`); `itens` é a lista de 1 a 200 itens, cada um com `produto_id`, `quantidade`, `embalagem_fechada` e `preco_unitario`; `economia_tier` é a economia do grupo de cliente vista no carrinho (decimal, informativo); `carrinho_id` (opcional) é o carrinho aberto da unidade de onde os itens saíram: todo item precisa estar nele, o carrinho fecha junto com a cotação e os itens que não foram cotados seguem num carrinho novo; `pedido_inteligente_id` (opcional, nunca junto com `carrinho_id`) é o pedido inteligente revisado de onde os itens saíram: ele precisa estar `pronto`, todo item precisa ser um produto confirmado na revisão, a cotação sai com `origem` `pedido_inteligente` e o pedido vira `cotado`; sem ele, `origem` é `carrinho`; `endereco_id` (opcional) é um endereço de entrega da unidade, copiado para `endereco_entrega`; `observacao` (opcional) tem até 1000 caracteres. A cotação nasce com `numero` sequencial (exibido como C-1001) e `valida_ate` = hoje em Brasília + `cotacao_validade_dias` de Configurações (15 sem a chave).
811
811
  *
812
812
  * `POST /cotacao`
813
813
  */
@@ -841,7 +841,7 @@ export function buscar_auto_complete_cotacao(credencial_de_acesso, parametros =
841
841
  /**
842
842
  * Busca cotações por filtro
843
843
  *
844
- * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve as cotações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), das mais novas para as mais antigas. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. `autor_cliente_id` e `status` (`rascunho`, `esperando_aprovacao`, `concluido`, `nao_aprovado`, `em_transporte`) são exatos.
844
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve as cotações não excluídas que casam com o filtro, até 50 por página (`pagina`, a partir de 1, padrão 1), das mais novas para as mais antigas. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. `origem` (`carrinho`, `pedido_inteligente`) e `status` (`rascunho`, `esperando_aprovacao`, `concluido`, `nao_aprovado`, `em_transporte`) são exatos.
845
845
  *
846
846
  * `GET /cotacao/filtro`
847
847
  */
@@ -1506,6 +1506,89 @@ export function deletar_pelo_id_pedido(credencial_de_acesso, id, opcoes_da_chama
1506
1506
  formato_da_resposta: "sem_conteudo",
1507
1507
  }, opcoes_da_chamada);
1508
1508
  }
1509
+ /**
1510
+ * Envia um pedido para a IA montar
1511
+ *
1512
+ * Exige a permissão `criar` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Formulário `multipart/form-data` com `unidade_id` (uma unidade da sessão), `texto` (opcional, até 4000 caracteres) e até 5 campos `arquivo` (áudio MP3, M4A, OGG, OPUS, WAV ou WEBM; PDF; foto PNG, JPG ou WEBP; planilha XLSX ou CSV), cada um com até 20 MB e o envio inteiro com até 25 MB; é preciso mandar o texto ou ao menos um anexo. Grava o pedido com `status` `analisando` e responde na hora; a análise roda no servidor: os anexos vão para o TermoBucket (privados), tudo vira texto (PDF e planilha no próprio Portal, foto, PDF escaneado e áudio pelo TermoAI) e a IA de texto escolhida em Provedores procura cada item no catálogo e no boletim técnico. Acompanhe por `GET /pedido_inteligente/{id}` até `status` virar `pronto` (com os `itens` para revisar) ou `erro` (com o motivo em `erro`). Cada unidade manda no máximo 20 pedidos por hora.
1513
+ *
1514
+ * `POST /pedido_inteligente`
1515
+ */
1516
+ export function criar_pedido_inteligente(credencial_de_acesso, formulario, opcoes_da_chamada) {
1517
+ return chamar_servico({
1518
+ servico: SERVICO_DESTA_API,
1519
+ metodo_http: "POST",
1520
+ caminho_da_rota: "/pedido_inteligente",
1521
+ credencial_de_acesso,
1522
+ formulario,
1523
+ formato_da_resposta: "json",
1524
+ }, opcoes_da_chamada);
1525
+ }
1526
+ /**
1527
+ * Busca pedidos inteligentes por filtro
1528
+ *
1529
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Devolve os pedidos não excluídos, até 50 por página (`pagina`, a partir de 1, padrão 1), dos mais novos para os mais antigos. Quem não é colaborador interno precisa informar `unidade_id` de uma unidade da própria sessão; colaborador interno pode omitir e vê todos. `status` (`analisando`, `pronto`, `cotado`, `erro`) é exato; uma análise parada há mais de 10 minutos conta como `erro`.
1530
+ *
1531
+ * `GET /pedido_inteligente/filtro`
1532
+ */
1533
+ export function buscar_pelo_filtro_pedido_inteligente(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
1534
+ return chamar_servico({
1535
+ servico: SERVICO_DESTA_API,
1536
+ metodo_http: "GET",
1537
+ caminho_da_rota: "/pedido_inteligente/filtro",
1538
+ credencial_de_acesso,
1539
+ parametros_de_consulta: parametros,
1540
+ formato_da_resposta: "json",
1541
+ }, opcoes_da_chamada);
1542
+ }
1543
+ /**
1544
+ * Busca um pedido inteligente pelo id
1545
+ *
1546
+ * Exige a permissão `ver` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Pedido de uma unidade fora da sessão responde 404, como se não existisse. Depois da análise, cada anexo guardado traz `url`, um link de download do TermoBucket que vale 15 minutos. Cada item traz `pedido_do_cliente` (o trecho que o cliente escreveu), `situacao` (`encontrado`, `escolher`, `indisponivel` ou `nao_encontrado`), `quantidade`, `escolhido`, `opcoes` e `observacao` (como a IA entendeu o item); `cotacao_id` aparece quando o pedido já virou cotação.
1547
+ *
1548
+ * `GET /pedido_inteligente/{id}`
1549
+ */
1550
+ export function buscar_pelo_id_pedido_inteligente(credencial_de_acesso, id, opcoes_da_chamada) {
1551
+ return chamar_servico({
1552
+ servico: SERVICO_DESTA_API,
1553
+ metodo_http: "GET",
1554
+ caminho_da_rota: `/pedido_inteligente/${codificar_parametro_de_caminho(id)}`,
1555
+ credencial_de_acesso,
1556
+ formato_da_resposta: "json",
1557
+ }, opcoes_da_chamada);
1558
+ }
1559
+ /**
1560
+ * Grava a revisão do cliente
1561
+ *
1562
+ * 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, entre o `escolhido` e as `opcoes` daquele item (nulo tira o item da cotação), e `quantidade` vai de 0 a 9999 (acima de zero).
1563
+ *
1564
+ * `PATCH /pedido_inteligente/{id}`
1565
+ */
1566
+ export function atualizar_pelo_id_pedido_inteligente(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
1567
+ return chamar_servico({
1568
+ servico: SERVICO_DESTA_API,
1569
+ metodo_http: "PATCH",
1570
+ caminho_da_rota: `/pedido_inteligente/${codificar_parametro_de_caminho(id)}`,
1571
+ credencial_de_acesso,
1572
+ corpo_json: corpo_da_requisicao,
1573
+ formato_da_resposta: "json",
1574
+ }, opcoes_da_chamada);
1575
+ }
1576
+ /**
1577
+ * Cancela um pedido inteligente
1578
+ *
1579
+ * Exige a permissão `excluir` no módulo `Cotacoes` do perfil de quem chama (administrador e master têm tudo). Exclusão lógica; uma análise em andamento para de gravar. O pedido que já virou cotação não sai (409).
1580
+ *
1581
+ * `DELETE /pedido_inteligente/{id}`
1582
+ */
1583
+ export function deletar_pelo_id_pedido_inteligente(credencial_de_acesso, id, opcoes_da_chamada) {
1584
+ return chamar_servico({
1585
+ servico: SERVICO_DESTA_API,
1586
+ metodo_http: "DELETE",
1587
+ caminho_da_rota: `/pedido_inteligente/${codificar_parametro_de_caminho(id)}`,
1588
+ credencial_de_acesso,
1589
+ formato_da_resposta: "sem_conteudo",
1590
+ }, opcoes_da_chamada);
1591
+ }
1509
1592
  /**
1510
1593
  * Lista os pedidos de venda do ERP
1511
1594
  *
@@ -1,3 +1,10 @@
1
+ export interface AnexoDoPedido {
2
+ arquivo_id?: string | null;
3
+ nome: string;
4
+ tamanho: number;
5
+ tipo: string;
6
+ url?: string | null;
7
+ }
1
8
  export interface Arquivo {
2
9
  url: string;
3
10
  }
@@ -93,7 +100,6 @@ export interface BuscaTermotubos {
93
100
  }
94
101
  export interface Carrinho {
95
102
  atualizado_em: string;
96
- cliente_id?: string | null;
97
103
  criado_em: string;
98
104
  id: string;
99
105
  itens: Array<CarrinhoItem>;
@@ -294,7 +300,6 @@ export interface ContatoCriar {
294
300
  export interface Cotacao {
295
301
  acima_do_limite: boolean;
296
302
  atualizado_em: string;
297
- autor_cliente_id: string;
298
303
  autor_nome: string;
299
304
  carrinho_id?: string | null;
300
305
  criado_em: string;
@@ -305,6 +310,8 @@ export interface Cotacao {
305
310
  itens: Array<CotacaoItem>;
306
311
  numero: number;
307
312
  observacao?: string | null;
313
+ origem: string;
314
+ pedido_inteligente_id?: string | null;
308
315
  quantidade_itens: number;
309
316
  status: string;
310
317
  subtotal: number;
@@ -324,12 +331,12 @@ export interface CotacaoAutoComplete {
324
331
  rotulo: string;
325
332
  }
326
333
  export interface CotacaoCriar {
327
- autor_cliente_id: string;
328
334
  carrinho_id?: string | null;
329
335
  economia_tier?: number | null;
330
336
  endereco_id?: string | null;
331
337
  itens: Array<CotacaoItemCriar>;
332
338
  observacao?: string | null;
339
+ pedido_inteligente_id?: string | null;
333
340
  total_esperado?: number | null;
334
341
  unidade_id: string;
335
342
  }
@@ -436,6 +443,10 @@ export interface EnderecoEntrega {
436
443
  logradouro: string;
437
444
  numero?: string | null;
438
445
  }
446
+ export interface EscolhaDoItem {
447
+ produto_id?: string | null;
448
+ quantidade: number;
449
+ }
439
450
  export interface ExpedicaoTermotubos {
440
451
  atualizado_em?: string | null;
441
452
  cep?: string | null;
@@ -561,6 +572,14 @@ export interface ItemCatalogoTermotubos {
561
572
  tem_imagem: boolean;
562
573
  unidade?: string | null;
563
574
  }
575
+ export interface ItemDoPedido {
576
+ escolhido?: OpcaoDoItem | null;
577
+ observacao?: string | null;
578
+ opcoes: Array<OpcaoDoItem>;
579
+ pedido_do_cliente: string;
580
+ quantidade: number;
581
+ situacao: string;
582
+ }
564
583
  export interface ItemNotaFiscal {
565
584
  descricao?: string | null;
566
585
  preco_unitario?: number | null;
@@ -628,6 +647,15 @@ export interface OpcaoDeFiltro {
628
647
  rotulo: string;
629
648
  valor: string;
630
649
  }
650
+ export interface OpcaoDoItem {
651
+ disponivel: boolean;
652
+ imagem_url?: string | null;
653
+ nome: string;
654
+ preco_unitario: number;
655
+ produto_id: string;
656
+ sku: string;
657
+ unidade: string;
658
+ }
631
659
  export interface PaginaExpedicoes {
632
660
  contagens: ContagemExpedicoes;
633
661
  itens: Array<ExpedicaoTermotubos>;
@@ -1118,6 +1146,28 @@ export interface PedidoCriar {
1118
1146
  export interface PedidoDaEntrega {
1119
1147
  id: number;
1120
1148
  }
1149
+ export interface PedidoInteligente {
1150
+ anexos: Array<AnexoDoPedido>;
1151
+ atualizado_em: string;
1152
+ cotacao_id?: string | null;
1153
+ criado_em: string;
1154
+ erro?: string | null;
1155
+ id: string;
1156
+ itens: Array<ItemDoPedido>;
1157
+ provedor_ia?: string | null;
1158
+ status: string;
1159
+ texto_enviado?: string | null;
1160
+ texto_interpretado?: string | null;
1161
+ unidade_id: string;
1162
+ }
1163
+ export interface PedidoInteligenteAtualizar {
1164
+ itens: Array<EscolhaDoItem>;
1165
+ }
1166
+ export interface PedidoInteligenteEnvio {
1167
+ arquivo: Array<string>;
1168
+ texto?: string | null;
1169
+ unidade_id: string;
1170
+ }
1121
1171
  export interface PedidoItem {
1122
1172
  produto: string;
1123
1173
  quantidade: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termo_core",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
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>",