termo_core 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/servicos.d.ts +1 -0
- package/dist/base/servicos.js +9 -0
- package/dist/bucket/rotas.d.ts +3 -3
- package/dist/bucket/rotas.js +3 -3
- package/dist/flow/rotas.d.ts +2 -2
- package/dist/flow/rotas.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/miro/index.d.ts +6 -0
- package/dist/miro/index.js +7 -0
- package/dist/miro/rotas.d.ts +108 -0
- package/dist/miro/rotas.js +168 -0
- package/dist/miro/tipos.d.ts +103 -0
- package/dist/miro/tipos.js +2 -0
- package/dist/portal/rotas.d.ts +8 -8
- package/dist/portal/rotas.js +8 -8
- package/dist/portal/tipos.d.ts +26 -3
- package/dist/support/rotas.d.ts +49 -758
- package/dist/support/rotas.js +50 -971
- package/dist/support/tipos.d.ts +48 -732
- package/dist/tracing/rotas.d.ts +31 -55
- package/dist/tracing/rotas.js +31 -81
- package/dist/tracing/tipos.d.ts +4 -13
- package/package.json +1 -1
package/dist/base/servicos.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare const TERMO_FLOW: ServicoTermotubos;
|
|
|
6
6
|
export declare const TERMO_INTRANET: ServicoTermotubos;
|
|
7
7
|
export declare const TERMO_LEADS: ServicoTermotubos;
|
|
8
8
|
export declare const TERMO_MCP: ServicoTermotubos;
|
|
9
|
+
export declare const TERMO_MIRO: ServicoTermotubos;
|
|
9
10
|
export declare const TERMO_PORTAL: ServicoTermotubos;
|
|
10
11
|
export declare const TERMO_QUALITY: ServicoTermotubos;
|
|
11
12
|
export declare const TERMO_STATUS: ServicoTermotubos;
|
package/dist/base/servicos.js
CHANGED
|
@@ -55,6 +55,14 @@ export const TERMO_MCP = {
|
|
|
55
55
|
endereco_em_production: "https://api-mcp.termotubos.com.br",
|
|
56
56
|
ativo: false,
|
|
57
57
|
};
|
|
58
|
+
export const TERMO_MIRO = {
|
|
59
|
+
nome_do_servico: "TermoMiro",
|
|
60
|
+
nome_do_modulo: "miro",
|
|
61
|
+
endereco_no_localhost: "http://localhost:51141",
|
|
62
|
+
endereco_no_sandbox: "https://sandbox-api-miro.termotubos.com.br",
|
|
63
|
+
endereco_em_production: "https://api-miro.termotubos.com.br",
|
|
64
|
+
ativo: true,
|
|
65
|
+
};
|
|
58
66
|
export const TERMO_PORTAL = {
|
|
59
67
|
nome_do_servico: "TermoPortal",
|
|
60
68
|
nome_do_modulo: "portal",
|
|
@@ -127,6 +135,7 @@ export const TODOS_OS_SERVICOS = [
|
|
|
127
135
|
TERMO_INTRANET,
|
|
128
136
|
TERMO_LEADS,
|
|
129
137
|
TERMO_MCP,
|
|
138
|
+
TERMO_MIRO,
|
|
130
139
|
TERMO_PORTAL,
|
|
131
140
|
TERMO_QUALITY,
|
|
132
141
|
TERMO_STATUS,
|
package/dist/bucket/rotas.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
*/
|
package/dist/bucket/rotas.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
*/
|
package/dist/flow/rotas.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { type OpcoesDaChamada } from "../base/requisicao.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Cadastra um robô de atendimento
|
|
6
6
|
*
|
|
7
|
-
* Exige a permissão `criar` da área `
|
|
7
|
+
* Exige a permissão `criar` da área `robos`. `nome` é obrigatório (até 80 caracteres, único entre os robôs); `modelo` é a IA preferida do gateway do TermoAI, um `provedor` de `GET /robo/modelos` (opcional, até 80; vazio deixa o TermoAI escolher); `descricao` vai até 200 e `prompt_base` até 4000 (padrão vazio). Sem `fluxo`, o robô nasce só com a etapa de início. O robô nasce ativo, na versão 1. `fluxo` é o caminho do atendimento: `nos` (até 40 etapas, exatamente uma do tipo `inicio`; os outros tipos são `inicio_contato_novo`, `instrucao`, `mensagem`, `botoes`, `atendimento` e `gatilho`) e `ligacoes` (`origem`, `destino` e `origem_saida`, que é o id do botão ou da regra de onde a ligação sai, `null` no início e na mensagem). Cada etapa fora o início precisa de `nome` (até 60 caracteres); `objetivo` vai até 200, `instrucao` até 2000 e `mensagem` até 1000; `ferramentas` lista até 20 ids de ferramentas do robô. A `instrucao` precisa de 1 a 10 `regras` de saída (`condicao` até 200 caracteres); `botoes` precisa de 1 a 10 botões (`rotulo` até 20 caracteres) e de texto fixo em `mensagem` ou, com `mensagem_por_ia`, da `instrucao` para a IA escrever; `mensagem` também exige texto fixo ou `mensagem_por_ia`; `atendimento` encerra o robô, passa a conversa para a equipe do Chatwoot em `equipe_id` (opcional, de `GET /robo/equipes`) e não tem saída; `gatilho` (no máximo um, sem ligação de entrada nem de saída) é o gatilho de cliente sem resposta: `minutos_sem_resposta` (1 a 1440) e `equipe_id` opcional, e uma varredura a cada minuto passa para essa equipe toda conversa com o robô em que o cliente ficou esse tempo sem responder. Ids de etapas, botões e regras são únicos; nenhuma ligação volta ao início nem liga a etapa nela mesma, e cada saída tem no máximo uma próxima etapa. `inicio_contato_novo` (no máximo um, sem ligação de entrada) é o início de quem não está na lista de clientes: só vale com `atender_contatos_novos` ligado e, sem ele ou sem ligação, o contato novo sai pelo `inicio`. O texto fixo aceita marcadores como `{{cliente.nome}}` e `{{ultimo_pedido.itens}}`.
|
|
8
8
|
*
|
|
9
9
|
* `POST /robo`
|
|
10
10
|
*/
|
|
@@ -12,7 +12,7 @@ export declare function criar_robo(credencial_de_acesso: CredencialDeAcesso, cor
|
|
|
12
12
|
/**
|
|
13
13
|
* Atualiza um robô pelo id
|
|
14
14
|
*
|
|
15
|
-
* Exige a permissão `editar` da área `
|
|
15
|
+
* Exige a permissão `editar` da área `robos`. Atualização parcial: só os campos enviados mudam, com os mesmos limites do cadastro; `descricao` vazia apaga o valor `ativo` liga ou desliga o robô e `atender_contatos_novos` decide se o robô atende quem não está na lista de clientes (cliente cadastrado com o atendente desligado continua indo para a equipe). `fluxo`, quando enviado, substitui o fluxo inteiro. Enviar `prompt_base` ou `fluxo` sobe a `versao` em 1. `fluxo` é o caminho do atendimento: `nos` (até 40 etapas, exatamente uma do tipo `inicio`; os outros tipos são `inicio_contato_novo`, `instrucao`, `mensagem`, `botoes`, `atendimento` e `gatilho`) e `ligacoes` (`origem`, `destino` e `origem_saida`, que é o id do botão ou da regra de onde a ligação sai, `null` no início e na mensagem). Cada etapa fora o início precisa de `nome` (até 60 caracteres); `objetivo` vai até 200, `instrucao` até 2000 e `mensagem` até 1000; `ferramentas` lista até 20 ids de ferramentas do robô. A `instrucao` precisa de 1 a 10 `regras` de saída (`condicao` até 200 caracteres); `botoes` precisa de 1 a 10 botões (`rotulo` até 20 caracteres) e de texto fixo em `mensagem` ou, com `mensagem_por_ia`, da `instrucao` para a IA escrever; `mensagem` também exige texto fixo ou `mensagem_por_ia`; `atendimento` encerra o robô, passa a conversa para a equipe do Chatwoot em `equipe_id` (opcional, de `GET /robo/equipes`) e não tem saída; `gatilho` (no máximo um, sem ligação de entrada nem de saída) é o gatilho de cliente sem resposta: `minutos_sem_resposta` (1 a 1440) e `equipe_id` opcional, e uma varredura a cada minuto passa para essa equipe toda conversa com o robô em que o cliente ficou esse tempo sem responder. Ids de etapas, botões e regras são únicos; nenhuma ligação volta ao início nem liga a etapa nela mesma, e cada saída tem no máximo uma próxima etapa. `inicio_contato_novo` (no máximo um, sem ligação de entrada) é o início de quem não está na lista de clientes: só vale com `atender_contatos_novos` ligado e, sem ele ou sem ligação, o contato novo sai pelo `inicio`. O texto fixo aceita marcadores como `{{cliente.nome}}` e `{{ultimo_pedido.itens}}`.
|
|
16
16
|
*
|
|
17
17
|
* `PATCH /robo/{id}`
|
|
18
18
|
*/
|
package/dist/flow/rotas.js
CHANGED
|
@@ -4,7 +4,7 @@ import { TERMO_FLOW as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Cadastra um robô de atendimento
|
|
6
6
|
*
|
|
7
|
-
* Exige a permissão `criar` da área `
|
|
7
|
+
* Exige a permissão `criar` da área `robos`. `nome` é obrigatório (até 80 caracteres, único entre os robôs); `modelo` é a IA preferida do gateway do TermoAI, um `provedor` de `GET /robo/modelos` (opcional, até 80; vazio deixa o TermoAI escolher); `descricao` vai até 200 e `prompt_base` até 4000 (padrão vazio). Sem `fluxo`, o robô nasce só com a etapa de início. O robô nasce ativo, na versão 1. `fluxo` é o caminho do atendimento: `nos` (até 40 etapas, exatamente uma do tipo `inicio`; os outros tipos são `inicio_contato_novo`, `instrucao`, `mensagem`, `botoes`, `atendimento` e `gatilho`) e `ligacoes` (`origem`, `destino` e `origem_saida`, que é o id do botão ou da regra de onde a ligação sai, `null` no início e na mensagem). Cada etapa fora o início precisa de `nome` (até 60 caracteres); `objetivo` vai até 200, `instrucao` até 2000 e `mensagem` até 1000; `ferramentas` lista até 20 ids de ferramentas do robô. A `instrucao` precisa de 1 a 10 `regras` de saída (`condicao` até 200 caracteres); `botoes` precisa de 1 a 10 botões (`rotulo` até 20 caracteres) e de texto fixo em `mensagem` ou, com `mensagem_por_ia`, da `instrucao` para a IA escrever; `mensagem` também exige texto fixo ou `mensagem_por_ia`; `atendimento` encerra o robô, passa a conversa para a equipe do Chatwoot em `equipe_id` (opcional, de `GET /robo/equipes`) e não tem saída; `gatilho` (no máximo um, sem ligação de entrada nem de saída) é o gatilho de cliente sem resposta: `minutos_sem_resposta` (1 a 1440) e `equipe_id` opcional, e uma varredura a cada minuto passa para essa equipe toda conversa com o robô em que o cliente ficou esse tempo sem responder. Ids de etapas, botões e regras são únicos; nenhuma ligação volta ao início nem liga a etapa nela mesma, e cada saída tem no máximo uma próxima etapa. `inicio_contato_novo` (no máximo um, sem ligação de entrada) é o início de quem não está na lista de clientes: só vale com `atender_contatos_novos` ligado e, sem ele ou sem ligação, o contato novo sai pelo `inicio`. O texto fixo aceita marcadores como `{{cliente.nome}}` e `{{ultimo_pedido.itens}}`.
|
|
8
8
|
*
|
|
9
9
|
* `POST /robo`
|
|
10
10
|
*/
|
|
@@ -21,7 +21,7 @@ export function criar_robo(credencial_de_acesso, corpo_da_requisicao, opcoes_da_
|
|
|
21
21
|
/**
|
|
22
22
|
* Atualiza um robô pelo id
|
|
23
23
|
*
|
|
24
|
-
* Exige a permissão `editar` da área `
|
|
24
|
+
* Exige a permissão `editar` da área `robos`. Atualização parcial: só os campos enviados mudam, com os mesmos limites do cadastro; `descricao` vazia apaga o valor `ativo` liga ou desliga o robô e `atender_contatos_novos` decide se o robô atende quem não está na lista de clientes (cliente cadastrado com o atendente desligado continua indo para a equipe). `fluxo`, quando enviado, substitui o fluxo inteiro. Enviar `prompt_base` ou `fluxo` sobe a `versao` em 1. `fluxo` é o caminho do atendimento: `nos` (até 40 etapas, exatamente uma do tipo `inicio`; os outros tipos são `inicio_contato_novo`, `instrucao`, `mensagem`, `botoes`, `atendimento` e `gatilho`) e `ligacoes` (`origem`, `destino` e `origem_saida`, que é o id do botão ou da regra de onde a ligação sai, `null` no início e na mensagem). Cada etapa fora o início precisa de `nome` (até 60 caracteres); `objetivo` vai até 200, `instrucao` até 2000 e `mensagem` até 1000; `ferramentas` lista até 20 ids de ferramentas do robô. A `instrucao` precisa de 1 a 10 `regras` de saída (`condicao` até 200 caracteres); `botoes` precisa de 1 a 10 botões (`rotulo` até 20 caracteres) e de texto fixo em `mensagem` ou, com `mensagem_por_ia`, da `instrucao` para a IA escrever; `mensagem` também exige texto fixo ou `mensagem_por_ia`; `atendimento` encerra o robô, passa a conversa para a equipe do Chatwoot em `equipe_id` (opcional, de `GET /robo/equipes`) e não tem saída; `gatilho` (no máximo um, sem ligação de entrada nem de saída) é o gatilho de cliente sem resposta: `minutos_sem_resposta` (1 a 1440) e `equipe_id` opcional, e uma varredura a cada minuto passa para essa equipe toda conversa com o robô em que o cliente ficou esse tempo sem responder. Ids de etapas, botões e regras são únicos; nenhuma ligação volta ao início nem liga a etapa nela mesma, e cada saída tem no máximo uma próxima etapa. `inicio_contato_novo` (no máximo um, sem ligação de entrada) é o início de quem não está na lista de clientes: só vale com `atender_contatos_novos` ligado e, sem ele ou sem ligação, o contato novo sai pelo `inicio`. O texto fixo aceita marcadores como `{{cliente.nome}}` e `{{ultimo_pedido.itens}}`.
|
|
25
25
|
*
|
|
26
26
|
* `PATCH /robo/{id}`
|
|
27
27
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * as flow from "./flow/index.js";
|
|
|
6
6
|
export * as intranet from "./intranet/index.js";
|
|
7
7
|
export * as leads from "./leads/index.js";
|
|
8
8
|
export * as mcp from "./mcp/index.js";
|
|
9
|
+
export * as miro from "./miro/index.js";
|
|
9
10
|
export * as portal from "./portal/index.js";
|
|
10
11
|
export * as quality from "./quality/index.js";
|
|
11
12
|
export * as status from "./status/index.js";
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * as flow from "./flow/index.js";
|
|
|
7
7
|
export * as intranet from "./intranet/index.js";
|
|
8
8
|
export * as leads from "./leads/index.js";
|
|
9
9
|
export * as mcp from "./mcp/index.js";
|
|
10
|
+
export * as miro from "./miro/index.js";
|
|
10
11
|
export * as portal from "./portal/index.js";
|
|
11
12
|
export * as quality from "./quality/index.js";
|
|
12
13
|
export * as status from "./status/index.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
|
+
/**
|
|
3
|
+
* Cliente tipado da API do TermoMiro, gerado a partir do `openapi.json` do serviço.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./tipos.js";
|
|
6
|
+
export * from "./rotas.js";
|
|
7
|
+
export { CredencialDeAcesso, ErroAoChamarServico } from "../base/index.js";
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type * as tipos from "./tipos.js";
|
|
2
|
+
import type { CredencialDeAcesso } from "../base/credencial.js";
|
|
3
|
+
import { type OpcoesDaChamada } from "../base/requisicao.js";
|
|
4
|
+
/**
|
|
5
|
+
* Parâmetros de consulta e de cabeçalho de `/board`.
|
|
6
|
+
*/
|
|
7
|
+
export interface ParametrosDeBuscarPaginadorBoard {
|
|
8
|
+
pagina?: number;
|
|
9
|
+
tamanho?: number;
|
|
10
|
+
nome?: string;
|
|
11
|
+
favoritos?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parâmetros de consulta e de cabeçalho de `/board/autocomplete`.
|
|
15
|
+
*/
|
|
16
|
+
export interface ParametrosDeBuscarAutoCompleteBoard {
|
|
17
|
+
busca?: string;
|
|
18
|
+
pagina?: number;
|
|
19
|
+
tamanho?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parâmetros de consulta e de cabeçalho de `/board/filtro`.
|
|
23
|
+
*/
|
|
24
|
+
export interface ParametrosDeBuscarPeloFiltroBoard {
|
|
25
|
+
nome?: string;
|
|
26
|
+
favoritos?: boolean;
|
|
27
|
+
dono_id?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Lista os boards paginados
|
|
31
|
+
*
|
|
32
|
+
* Os boards que a pessoa enxerga, do mais recente para o mais antigo, sempre 50 por página: `tamanho` é ignorado. `pagina` começa em 1; aceita `nome` e `favoritos` como no filtro.
|
|
33
|
+
*
|
|
34
|
+
* `GET /board`
|
|
35
|
+
*/
|
|
36
|
+
export declare function buscar_paginador_board(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPaginadorBoard, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaBoard>;
|
|
37
|
+
/**
|
|
38
|
+
* Cria um board
|
|
39
|
+
*
|
|
40
|
+
* Livre para todo colaborador logado; quem cria é o dono. `nome` é obrigatório (até 120 caracteres), `descricao` vai até 500, `cor` segue o formato `#00397c` (padrão `#00397c`) e `visibilidade` é `ORGANIZACAO` (padrão, todos veem e editam) ou `MEMBROS` (só o dono e os `membro_ids`). O canvas nasce vazio e é editado em tempo real em `GET /board/ws/{id}?token=<JWT>` (WebSocket no protocolo do Yjs).
|
|
41
|
+
*
|
|
42
|
+
* `POST /board`
|
|
43
|
+
*/
|
|
44
|
+
export declare function criar_board(credencial_de_acesso: CredencialDeAcesso, corpo_da_requisicao: tipos.BoardCriar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Board>;
|
|
45
|
+
/**
|
|
46
|
+
* Lista básica de boards para seleção
|
|
47
|
+
*
|
|
48
|
+
* Id, nome e cor dos boards que a pessoa enxerga, em ordem alfabética. `busca` procura o trecho no nome. `pagina` começa em 1 e `tamanho` tem padrão 10.
|
|
49
|
+
*
|
|
50
|
+
* `GET /board/autocomplete`
|
|
51
|
+
*/
|
|
52
|
+
export declare function buscar_auto_complete_board(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarAutoCompleteBoard, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaBoardAutoComplete>;
|
|
53
|
+
/**
|
|
54
|
+
* Busca boards por filtro
|
|
55
|
+
*
|
|
56
|
+
* Todos os boards que a pessoa enxerga, do mais recente para o mais antigo. `nome` procura o trecho no nome sem diferenciar maiúsculas, `favoritos=true` traz só os favoritos de quem pediu e `dono_id` só os de um dono.
|
|
57
|
+
*
|
|
58
|
+
* `GET /board/filtro`
|
|
59
|
+
*/
|
|
60
|
+
export declare function buscar_pelo_filtro_board(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPeloFiltroBoard, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.Board>>;
|
|
61
|
+
/**
|
|
62
|
+
* Baixa uma imagem do canvas guardada no banco
|
|
63
|
+
*
|
|
64
|
+
* Pública (o `<img>` do canvas não manda token): devolve os bytes da imagem que ficou no banco porque o TermoBucket falhou, com cache longo.
|
|
65
|
+
*
|
|
66
|
+
* `GET /board/imagem/{id}`
|
|
67
|
+
*/
|
|
68
|
+
export declare function buscar_imagem_board(id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Busca um board pelo id
|
|
71
|
+
*
|
|
72
|
+
* Devolve o board com o dono, os membros, se é favorito de quem pediu e se essa pessoa pode gerenciá-lo (`pode_gerenciar`: dono ou master do TermoAuth). Board `MEMBROS` de que a pessoa não participa responde `404`, como se não existisse.
|
|
73
|
+
*
|
|
74
|
+
* `GET /board/{id}`
|
|
75
|
+
*/
|
|
76
|
+
export declare function buscar_pelo_id_board(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Board>;
|
|
77
|
+
/**
|
|
78
|
+
* Atualiza um board pelo id
|
|
79
|
+
*
|
|
80
|
+
* Atualização parcial. `nome`, `descricao` (`null` apaga) e `cor` valem para quem enxerga o board; `visibilidade` e `membro_ids` (a lista inteira) só para o dono ou o master do TermoAuth. `favorito` marca ou desmarca o board como favorito de quem pediu, e `miniatura` é o SVG (até 200 KB) da prévia mostrada na lista; esses dois não mudam a ordem de recentes.
|
|
81
|
+
*
|
|
82
|
+
* `PATCH /board/{id}`
|
|
83
|
+
*/
|
|
84
|
+
export declare function atualizar_pelo_id_board(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.BoardAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Board>;
|
|
85
|
+
/**
|
|
86
|
+
* Exclui um board pelo id
|
|
87
|
+
*
|
|
88
|
+
* Só o dono ou o master do TermoAuth. Exclusão lógica: o board some das listas e quem estava com ele aberto é desconectado.
|
|
89
|
+
*
|
|
90
|
+
* `DELETE /board/{id}`
|
|
91
|
+
*/
|
|
92
|
+
export declare function deletar_pelo_id_board(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Duplica um board
|
|
95
|
+
*
|
|
96
|
+
* Cria "Cópia de <nome>" com todo o conteúdo do canvas. Quem pediu vira o dono da cópia, que mantém a visibilidade do original, sem membros e sem favoritos.
|
|
97
|
+
*
|
|
98
|
+
* `POST /board/{id}/duplicar`
|
|
99
|
+
*/
|
|
100
|
+
export declare function duplicar_board(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Board>;
|
|
101
|
+
/**
|
|
102
|
+
* Envia uma imagem para o canvas
|
|
103
|
+
*
|
|
104
|
+
* 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; se o bucket falhar, fica no banco e o endereço é relativo à API (`/board/imagem/{id}`).
|
|
105
|
+
*
|
|
106
|
+
* `POST /board/{id}/imagem`
|
|
107
|
+
*/
|
|
108
|
+
export declare function guardar_imagem_board(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ImagemEnviar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.ImagemGuardada>;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
|
+
import { chamar_servico, codificar_parametro_de_caminho } from "../base/requisicao.js";
|
|
3
|
+
import { TERMO_MIRO as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
4
|
+
/**
|
|
5
|
+
* Lista os boards paginados
|
|
6
|
+
*
|
|
7
|
+
* Os boards que a pessoa enxerga, do mais recente para o mais antigo, sempre 50 por página: `tamanho` é ignorado. `pagina` começa em 1; aceita `nome` e `favoritos` como no filtro.
|
|
8
|
+
*
|
|
9
|
+
* `GET /board`
|
|
10
|
+
*/
|
|
11
|
+
export function buscar_paginador_board(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
12
|
+
return chamar_servico({
|
|
13
|
+
servico: SERVICO_DESTA_API,
|
|
14
|
+
metodo_http: "GET",
|
|
15
|
+
caminho_da_rota: "/board",
|
|
16
|
+
credencial_de_acesso,
|
|
17
|
+
parametros_de_consulta: parametros,
|
|
18
|
+
formato_da_resposta: "json",
|
|
19
|
+
}, opcoes_da_chamada);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Cria um board
|
|
23
|
+
*
|
|
24
|
+
* Livre para todo colaborador logado; quem cria é o dono. `nome` é obrigatório (até 120 caracteres), `descricao` vai até 500, `cor` segue o formato `#00397c` (padrão `#00397c`) e `visibilidade` é `ORGANIZACAO` (padrão, todos veem e editam) ou `MEMBROS` (só o dono e os `membro_ids`). O canvas nasce vazio e é editado em tempo real em `GET /board/ws/{id}?token=<JWT>` (WebSocket no protocolo do Yjs).
|
|
25
|
+
*
|
|
26
|
+
* `POST /board`
|
|
27
|
+
*/
|
|
28
|
+
export function criar_board(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
|
|
29
|
+
return chamar_servico({
|
|
30
|
+
servico: SERVICO_DESTA_API,
|
|
31
|
+
metodo_http: "POST",
|
|
32
|
+
caminho_da_rota: "/board",
|
|
33
|
+
credencial_de_acesso,
|
|
34
|
+
corpo_json: corpo_da_requisicao,
|
|
35
|
+
formato_da_resposta: "json",
|
|
36
|
+
}, opcoes_da_chamada);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Lista básica de boards para seleção
|
|
40
|
+
*
|
|
41
|
+
* Id, nome e cor dos boards que a pessoa enxerga, em ordem alfabética. `busca` procura o trecho no nome. `pagina` começa em 1 e `tamanho` tem padrão 10.
|
|
42
|
+
*
|
|
43
|
+
* `GET /board/autocomplete`
|
|
44
|
+
*/
|
|
45
|
+
export function buscar_auto_complete_board(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
46
|
+
return chamar_servico({
|
|
47
|
+
servico: SERVICO_DESTA_API,
|
|
48
|
+
metodo_http: "GET",
|
|
49
|
+
caminho_da_rota: "/board/autocomplete",
|
|
50
|
+
credencial_de_acesso,
|
|
51
|
+
parametros_de_consulta: parametros,
|
|
52
|
+
formato_da_resposta: "json",
|
|
53
|
+
}, opcoes_da_chamada);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Busca boards por filtro
|
|
57
|
+
*
|
|
58
|
+
* Todos os boards que a pessoa enxerga, do mais recente para o mais antigo. `nome` procura o trecho no nome sem diferenciar maiúsculas, `favoritos=true` traz só os favoritos de quem pediu e `dono_id` só os de um dono.
|
|
59
|
+
*
|
|
60
|
+
* `GET /board/filtro`
|
|
61
|
+
*/
|
|
62
|
+
export function buscar_pelo_filtro_board(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
63
|
+
return chamar_servico({
|
|
64
|
+
servico: SERVICO_DESTA_API,
|
|
65
|
+
metodo_http: "GET",
|
|
66
|
+
caminho_da_rota: "/board/filtro",
|
|
67
|
+
credencial_de_acesso,
|
|
68
|
+
parametros_de_consulta: parametros,
|
|
69
|
+
formato_da_resposta: "json",
|
|
70
|
+
}, opcoes_da_chamada);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Baixa uma imagem do canvas guardada no banco
|
|
74
|
+
*
|
|
75
|
+
* Pública (o `<img>` do canvas não manda token): devolve os bytes da imagem que ficou no banco porque o TermoBucket falhou, com cache longo.
|
|
76
|
+
*
|
|
77
|
+
* `GET /board/imagem/{id}`
|
|
78
|
+
*/
|
|
79
|
+
export function buscar_imagem_board(id, opcoes_da_chamada) {
|
|
80
|
+
return chamar_servico({
|
|
81
|
+
servico: SERVICO_DESTA_API,
|
|
82
|
+
metodo_http: "GET",
|
|
83
|
+
caminho_da_rota: `/board/imagem/${codificar_parametro_de_caminho(id)}`,
|
|
84
|
+
formato_da_resposta: "sem_conteudo",
|
|
85
|
+
}, opcoes_da_chamada);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Busca um board pelo id
|
|
89
|
+
*
|
|
90
|
+
* Devolve o board com o dono, os membros, se é favorito de quem pediu e se essa pessoa pode gerenciá-lo (`pode_gerenciar`: dono ou master do TermoAuth). Board `MEMBROS` de que a pessoa não participa responde `404`, como se não existisse.
|
|
91
|
+
*
|
|
92
|
+
* `GET /board/{id}`
|
|
93
|
+
*/
|
|
94
|
+
export function buscar_pelo_id_board(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
95
|
+
return chamar_servico({
|
|
96
|
+
servico: SERVICO_DESTA_API,
|
|
97
|
+
metodo_http: "GET",
|
|
98
|
+
caminho_da_rota: `/board/${codificar_parametro_de_caminho(id)}`,
|
|
99
|
+
credencial_de_acesso,
|
|
100
|
+
formato_da_resposta: "json",
|
|
101
|
+
}, opcoes_da_chamada);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Atualiza um board pelo id
|
|
105
|
+
*
|
|
106
|
+
* Atualização parcial. `nome`, `descricao` (`null` apaga) e `cor` valem para quem enxerga o board; `visibilidade` e `membro_ids` (a lista inteira) só para o dono ou o master do TermoAuth. `favorito` marca ou desmarca o board como favorito de quem pediu, e `miniatura` é o SVG (até 200 KB) da prévia mostrada na lista; esses dois não mudam a ordem de recentes.
|
|
107
|
+
*
|
|
108
|
+
* `PATCH /board/{id}`
|
|
109
|
+
*/
|
|
110
|
+
export function atualizar_pelo_id_board(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
111
|
+
return chamar_servico({
|
|
112
|
+
servico: SERVICO_DESTA_API,
|
|
113
|
+
metodo_http: "PATCH",
|
|
114
|
+
caminho_da_rota: `/board/${codificar_parametro_de_caminho(id)}`,
|
|
115
|
+
credencial_de_acesso,
|
|
116
|
+
corpo_json: corpo_da_requisicao,
|
|
117
|
+
formato_da_resposta: "json",
|
|
118
|
+
}, opcoes_da_chamada);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Exclui um board pelo id
|
|
122
|
+
*
|
|
123
|
+
* Só o dono ou o master do TermoAuth. Exclusão lógica: o board some das listas e quem estava com ele aberto é desconectado.
|
|
124
|
+
*
|
|
125
|
+
* `DELETE /board/{id}`
|
|
126
|
+
*/
|
|
127
|
+
export function deletar_pelo_id_board(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
128
|
+
return chamar_servico({
|
|
129
|
+
servico: SERVICO_DESTA_API,
|
|
130
|
+
metodo_http: "DELETE",
|
|
131
|
+
caminho_da_rota: `/board/${codificar_parametro_de_caminho(id)}`,
|
|
132
|
+
credencial_de_acesso,
|
|
133
|
+
formato_da_resposta: "sem_conteudo",
|
|
134
|
+
}, opcoes_da_chamada);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Duplica um board
|
|
138
|
+
*
|
|
139
|
+
* Cria "Cópia de <nome>" com todo o conteúdo do canvas. Quem pediu vira o dono da cópia, que mantém a visibilidade do original, sem membros e sem favoritos.
|
|
140
|
+
*
|
|
141
|
+
* `POST /board/{id}/duplicar`
|
|
142
|
+
*/
|
|
143
|
+
export function duplicar_board(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
144
|
+
return chamar_servico({
|
|
145
|
+
servico: SERVICO_DESTA_API,
|
|
146
|
+
metodo_http: "POST",
|
|
147
|
+
caminho_da_rota: `/board/${codificar_parametro_de_caminho(id)}/duplicar`,
|
|
148
|
+
credencial_de_acesso,
|
|
149
|
+
formato_da_resposta: "json",
|
|
150
|
+
}, opcoes_da_chamada);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Envia uma imagem para o canvas
|
|
154
|
+
*
|
|
155
|
+
* 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; se o bucket falhar, fica no banco e o endereço é relativo à API (`/board/imagem/{id}`).
|
|
156
|
+
*
|
|
157
|
+
* `POST /board/{id}/imagem`
|
|
158
|
+
*/
|
|
159
|
+
export function guardar_imagem_board(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
160
|
+
return chamar_servico({
|
|
161
|
+
servico: SERVICO_DESTA_API,
|
|
162
|
+
metodo_http: "POST",
|
|
163
|
+
caminho_da_rota: `/board/${codificar_parametro_de_caminho(id)}/imagem`,
|
|
164
|
+
credencial_de_acesso,
|
|
165
|
+
corpo_json: corpo_da_requisicao,
|
|
166
|
+
formato_da_resposta: "json",
|
|
167
|
+
}, opcoes_da_chamada);
|
|
168
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Board com tudo o que a tela precisa: o dono e os membros com nome, e o que vale para quem está
|
|
3
|
+
* olhando (`favorito` e `pode_gerenciar`). O conteúdo do canvas não vem aqui: ele chega pelo
|
|
4
|
+
* tempo real (`/board/ws/{id}`).
|
|
5
|
+
*/
|
|
6
|
+
export interface Board {
|
|
7
|
+
atualizado_em: string;
|
|
8
|
+
cor: string;
|
|
9
|
+
criado_em: string;
|
|
10
|
+
descricao?: string | null;
|
|
11
|
+
dono: ColaboradorResumo;
|
|
12
|
+
favorito: boolean;
|
|
13
|
+
id: string;
|
|
14
|
+
membros: Array<ColaboradorResumo>;
|
|
15
|
+
miniatura?: string | null;
|
|
16
|
+
nome: string;
|
|
17
|
+
pode_gerenciar: boolean;
|
|
18
|
+
visibilidade: string;
|
|
19
|
+
}
|
|
20
|
+
export interface BoardAtualizar {
|
|
21
|
+
cor?: string | null;
|
|
22
|
+
descricao?: string | null;
|
|
23
|
+
favorito?: boolean | null;
|
|
24
|
+
membro_ids?: Array<string> | null;
|
|
25
|
+
miniatura?: string | null;
|
|
26
|
+
nome?: string | null;
|
|
27
|
+
visibilidade?: string | null;
|
|
28
|
+
}
|
|
29
|
+
export interface BoardAutoComplete {
|
|
30
|
+
cor: string;
|
|
31
|
+
id: string;
|
|
32
|
+
nome: string;
|
|
33
|
+
}
|
|
34
|
+
export interface BoardCriar {
|
|
35
|
+
cor?: string | null;
|
|
36
|
+
descricao?: string | null;
|
|
37
|
+
membro_ids?: Array<string> | null;
|
|
38
|
+
nome: string;
|
|
39
|
+
visibilidade?: string | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resumo do colaborador (id e nome) para mostrar autoria.
|
|
43
|
+
*/
|
|
44
|
+
export interface ColaboradorResumo {
|
|
45
|
+
id: string;
|
|
46
|
+
nome: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ImagemEnviar {
|
|
49
|
+
/**
|
|
50
|
+
* O arquivo em base64 (pode vir como data URL: `data:image/png;base64,...`).
|
|
51
|
+
*/
|
|
52
|
+
arquivo_base64: string;
|
|
53
|
+
nome?: string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Tipo da imagem quando o base64 não é data URL (ex.: `image/png`).
|
|
56
|
+
*/
|
|
57
|
+
tipo?: string | null;
|
|
58
|
+
}
|
|
59
|
+
export interface ImagemGuardada {
|
|
60
|
+
/**
|
|
61
|
+
* Endereço público da imagem; quando começa com `/`, é relativo à API.
|
|
62
|
+
*/
|
|
63
|
+
url: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Board com tudo o que a tela precisa: o dono e os membros com nome, e o que vale para quem está
|
|
67
|
+
* olhando (`favorito` e `pode_gerenciar`). O conteúdo do canvas não vem aqui: ele chega pelo
|
|
68
|
+
* tempo real (`/board/ws/{id}`).
|
|
69
|
+
*/
|
|
70
|
+
export interface PaginaBoardItensItem {
|
|
71
|
+
atualizado_em: string;
|
|
72
|
+
cor: string;
|
|
73
|
+
criado_em: string;
|
|
74
|
+
descricao?: string | null;
|
|
75
|
+
dono: ColaboradorResumo;
|
|
76
|
+
favorito: boolean;
|
|
77
|
+
id: string;
|
|
78
|
+
membros: Array<ColaboradorResumo>;
|
|
79
|
+
miniatura?: string | null;
|
|
80
|
+
nome: string;
|
|
81
|
+
pode_gerenciar: boolean;
|
|
82
|
+
visibilidade: string;
|
|
83
|
+
}
|
|
84
|
+
export interface PaginaBoard {
|
|
85
|
+
itens: Array<PaginaBoardItensItem>;
|
|
86
|
+
pagina: number;
|
|
87
|
+
tamanho: number;
|
|
88
|
+
total: number;
|
|
89
|
+
}
|
|
90
|
+
export interface PaginaBoardAutoCompleteItensItem {
|
|
91
|
+
cor: string;
|
|
92
|
+
id: string;
|
|
93
|
+
nome: string;
|
|
94
|
+
}
|
|
95
|
+
export interface PaginaBoardAutoComplete {
|
|
96
|
+
itens: Array<PaginaBoardAutoCompleteItensItem>;
|
|
97
|
+
pagina: number;
|
|
98
|
+
tamanho: number;
|
|
99
|
+
total: number;
|
|
100
|
+
}
|
|
101
|
+
export interface RespostaDeErro {
|
|
102
|
+
erro: string;
|
|
103
|
+
}
|