@greatapps/greatagents 0.0.1 → 0.1.1
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/package.json +1 -1
- package/scripts/README.md +272 -0
- package/scripts/agents/create_table.sql +46 -0
- package/scripts/channels/create_table.sql +48 -0
- package/scripts/companies/create_table.sql +49 -0
- package/scripts/conversations/add_messages_reference.sql +42 -0
- package/scripts/conversations/create_table.sql +55 -0
- package/scripts/conversations_tags/create_table.sql +39 -0
- package/scripts/credentials/create_table.sql +63 -0
- package/scripts/leads/create_table.sql +63 -0
- package/scripts/leads_channels/create_table.sql +41 -0
- package/scripts/leads_tags/create_table.sql +39 -0
- package/scripts/messages/create_table.sql +44 -0
- package/scripts/missions/create_table.sql +43 -0
- package/scripts/objectives/create_table.sql +49 -0
- package/scripts/objectives_tools/create_table.sql +52 -0
- package/scripts/tags/create_table.sql +38 -0
- package/scripts/tools/create_table.sql +43 -0
- package/src/modules/{projects → agents}/index.js +2 -2
- package/src/modules/agents/properties.js +169 -0
- package/src/modules/{pages_blocks_folders → channels}/index.js +2 -2
- package/src/modules/channels/properties.js +149 -0
- package/src/modules/{experiments → companies}/index.js +3 -3
- package/src/modules/companies/properties.js +149 -0
- package/src/modules/conversations/index.js +10 -0
- package/src/modules/conversations/properties.js +179 -0
- package/src/modules/conversations_tags/index.js +10 -0
- package/src/modules/{pages_blocks_folders → conversations_tags}/properties.js +33 -39
- package/src/modules/credentials/index.js +10 -0
- package/src/modules/credentials/properties.js +270 -0
- package/src/modules/leads/index.js +10 -0
- package/src/modules/leads/properties.js +253 -0
- package/src/modules/leads_channels/index.js +10 -0
- package/src/modules/leads_channels/properties.js +104 -0
- package/src/modules/{domains_redirects → leads_tags}/index.js +3 -3
- package/src/modules/{projects_domains → leads_tags}/properties.js +32 -13
- package/src/modules/messages/index.js +10 -0
- package/src/modules/messages/properties.js +114 -0
- package/src/modules/{base_domains → missions}/index.js +3 -3
- package/src/modules/missions/properties.js +129 -0
- package/src/modules/objectives/index.js +10 -0
- package/src/modules/objectives/properties.js +160 -0
- package/src/modules/objectives_tools/index.js +10 -0
- package/src/modules/objectives_tools/properties.js +145 -0
- package/src/modules/{pages → tags}/index.js +2 -2
- package/src/modules/{base_domains → tags}/properties.js +49 -30
- package/src/modules/{domains → tools}/index.js +2 -2
- package/src/modules/tools/properties.js +120 -0
- package/src/product.js +30 -50
- package/src/shared/llmModels.js +17 -0
- package/src/shared/parameters.js +0 -1
- package/src/shared/query.js +0 -2
- package/src/shared/responses.js +0 -2
- package/src/modules/conversions/index.js +0 -12
- package/src/modules/conversions/properties.js +0 -47
- package/src/modules/conversions/responses.js +0 -57
- package/src/modules/conversions/routes.js +0 -120
- package/src/modules/conversions_resume/index.js +0 -10
- package/src/modules/conversions_resume/properties.js +0 -46
- package/src/modules/domains/properties.js +0 -75
- package/src/modules/domains_redirects/properties.js +0 -64
- package/src/modules/experiments/properties.js +0 -129
- package/src/modules/experiments_variations/index.js +0 -10
- package/src/modules/experiments_variations/properties.js +0 -193
- package/src/modules/integrations_accounts/index.js +0 -11
- package/src/modules/integrations_accounts/properties.js +0 -140
- package/src/modules/integrations_pages_elements/index.js +0 -12
- package/src/modules/integrations_pages_elements/properties.js +0 -283
- package/src/modules/pages/properties.js +0 -170
- package/src/modules/pages_blocks_models/index.js +0 -12
- package/src/modules/pages_blocks_models/properties.js +0 -91
- package/src/modules/pages_editor_photos/index.js +0 -10
- package/src/modules/pages_editor_photos/properties.js +0 -138
- package/src/modules/pages_editor_photos_folders/index.js +0 -10
- package/src/modules/pages_editor_photos_folders/properties.js +0 -92
- package/src/modules/projects/properties.js +0 -120
- package/src/modules/projects_domains/index.js +0 -10
- package/src/modules/projects_users/index.js +0 -10
- package/src/modules/projects_users/properties.js +0 -66
- package/src/modules/templates/index.js +0 -10
- package/src/modules/templates/properties.js +0 -86
- package/src/modules/templates_blocks/index.js +0 -10
- package/src/modules/templates_blocks/properties.js +0 -76
- package/src/modules/templates_blocks_folders/index.js +0 -11
- package/src/modules/templates_blocks_folders/properties.js +0 -54
- package/src/modules/templates_categories/index.js +0 -12
- package/src/modules/templates_categories/properties.js +0 -100
- package/src/modules/templates_categories_links/index.js +0 -12
- package/src/modules/templates_categories_links/properties.js +0 -63
- package/src/modules/templates_groups/index.js +0 -11
- package/src/modules/templates_groups/properties.js +0 -42
- package/src/modules/views/index.js +0 -12
- package/src/modules/views/properties.js +0 -44
- package/src/modules/views/responses.js +0 -57
- package/src/modules/views/routes.js +0 -56
- package/src/modules/views_resume/index.js +0 -10
- package/src/modules/views_resume/properties.js +0 -46
package/package.json
CHANGED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# Scripts PostgreSQL - GreatAgents
|
|
2
|
+
|
|
3
|
+
Sistema de scripts SQL para criação e manutenção do banco de dados PostgreSQL do projeto GreatAgents.
|
|
4
|
+
|
|
5
|
+
## Introdução
|
|
6
|
+
|
|
7
|
+
O **gagents-schemas** é um sistema de definição e implementação de esquemas de banco de dados para o GreatAgents. O sistema funciona em duas camadas complementares:
|
|
8
|
+
|
|
9
|
+
- **Schemas JavaScript** (`src/modules/`): Definem a estrutura canônica dos dados, propriedades, validações e interfaces
|
|
10
|
+
- **Scripts SQL** (`scripts/`): Implementam essas estruturas no PostgreSQL com comandos DDL otimizados
|
|
11
|
+
|
|
12
|
+
Os scripts SQL são gerados e mantidos em sincronia com os schemas JavaScript, garantindo consistência entre a definição lógica dos dados e sua implementação física no banco.
|
|
13
|
+
|
|
14
|
+
### Propósito
|
|
15
|
+
|
|
16
|
+
Este diretório contém scripts SQL PostgreSQL prontos para produção que criam todas as tabelas necessárias para o funcionamento do sistema GreatAgents, incluindo índices otimizados, comentários de documentação e referências de integridade.
|
|
17
|
+
|
|
18
|
+
## Arquitetura do Sistema
|
|
19
|
+
|
|
20
|
+
### Schemas JavaScript como Fonte da Verdade
|
|
21
|
+
|
|
22
|
+
Os schemas JavaScript em [`src/modules/`](../src/modules/) definem:
|
|
23
|
+
- Estrutura dos dados e tipos de campos
|
|
24
|
+
- Validações e restrições
|
|
25
|
+
- Relacionamentos entre entidades
|
|
26
|
+
- Configurações de cache e parâmetros
|
|
27
|
+
- Interfaces de usuário e labels
|
|
28
|
+
|
|
29
|
+
### Scripts SQL como Implementação
|
|
30
|
+
|
|
31
|
+
Os scripts SQL em [`scripts/`](.) implementam:
|
|
32
|
+
- Comandos `CREATE TABLE` com tipos PostgreSQL correspondentes
|
|
33
|
+
- Índices otimizados para consultas frequentes
|
|
34
|
+
- Chaves estrangeiras e integridade referencial
|
|
35
|
+
- Comentários detalhados de documentação
|
|
36
|
+
- Execução segura com `CREATE IF NOT EXISTS`
|
|
37
|
+
|
|
38
|
+
### Sincronização
|
|
39
|
+
|
|
40
|
+
A relação entre os módulos garante que:
|
|
41
|
+
- Cada schema JavaScript tem um script SQL correspondente
|
|
42
|
+
- Os tipos de dados são consistentes entre as duas representações
|
|
43
|
+
- As modificações nos schemas refletem automaticamente nos scripts
|
|
44
|
+
- A estrutura permanece sincronizada em todas as camadas
|
|
45
|
+
|
|
46
|
+
## Estrutura dos Dados
|
|
47
|
+
|
|
48
|
+
O sistema GreatAgents é organizado em **17 módulos** distribuídos em duas categorias:
|
|
49
|
+
|
|
50
|
+
### Módulos Principais (13)
|
|
51
|
+
|
|
52
|
+
| Módulo | Descrição | Dependências |
|
|
53
|
+
|--------|-----------|--------------|
|
|
54
|
+
| [`accounts`](accounts/) | Contas/organizações do sistema | - |
|
|
55
|
+
| [`agents`](agents/) | Agentes de IA e suas configurações | accounts |
|
|
56
|
+
| [`channels`](channels/) | Canais de comunicação (WhatsApp, Telegram, etc.) | accounts, credentials |
|
|
57
|
+
| [`companies`](companies/) | Empresas dos leads | - |
|
|
58
|
+
| [`conversations`](conversations/) | Conversas entre usuários e agentes | accounts, agents, leads_channels |
|
|
59
|
+
| [`credentials`](credentials/) | Credenciais de autenticação para integrações | accounts |
|
|
60
|
+
| [`leads`](leads/) | Leads/contatos do sistema | accounts, companies |
|
|
61
|
+
| [`messages`](messages/) | Mensagens das conversas | accounts, conversations |
|
|
62
|
+
| [`missions`](missions/) | Missões/tarefas complexas dos agentes | accounts, agents |
|
|
63
|
+
| [`objectives`](objectives/) | Objetivos específicos dentro das missões | accounts, agents, missions |
|
|
64
|
+
| [`tags`](tags/) | Sistema de tags para categorização | accounts |
|
|
65
|
+
| [`tools`](tools/) | Ferramentas disponíveis para os agentes | accounts, credentials |
|
|
66
|
+
| [`users`](users/) | Usuários do sistema | accounts |
|
|
67
|
+
|
|
68
|
+
### Tabelas de Relacionamento (4)
|
|
69
|
+
|
|
70
|
+
| Módulo | Descrição | Relaciona |
|
|
71
|
+
|--------|-----------|-----------|
|
|
72
|
+
| [`conversations_tags`](conversations_tags/) | Tags das conversas | conversations ↔ tags |
|
|
73
|
+
| [`leads_channels`](leads_channels/) | Canais dos leads | leads ↔ channels |
|
|
74
|
+
| [`leads_tags`](leads_tags/) | Tags dos leads | leads ↔ tags |
|
|
75
|
+
| [`objectives_tools`](objectives_tools/) | Ferramentas dos objetivos | objectives ↔ tools |
|
|
76
|
+
|
|
77
|
+
### Categorização Funcional
|
|
78
|
+
|
|
79
|
+
**Núcleo do Sistema:**
|
|
80
|
+
- `accounts` - Base organizacional
|
|
81
|
+
- `users` - Gestão de usuários
|
|
82
|
+
- `credentials` - Autenticação
|
|
83
|
+
|
|
84
|
+
**Agentes e IA:**
|
|
85
|
+
- `agents` - Agentes de IA
|
|
86
|
+
- `missions` - Tarefas complexas
|
|
87
|
+
- `objectives` - Objetivos específicos
|
|
88
|
+
- `tools` - Ferramentas disponíveis
|
|
89
|
+
|
|
90
|
+
**Comunicação:**
|
|
91
|
+
- `channels` - Canais de comunicação
|
|
92
|
+
- `conversations` - Conversas
|
|
93
|
+
- `messages` - Mensagens
|
|
94
|
+
|
|
95
|
+
**Gestão de Leads:**
|
|
96
|
+
- `leads` - Contatos
|
|
97
|
+
- `companies` - Empresas
|
|
98
|
+
- `leads_channels` - Associações lead-canal
|
|
99
|
+
|
|
100
|
+
**Organização:**
|
|
101
|
+
- `tags` - Sistema de categorização
|
|
102
|
+
- `conversations_tags` - Tags de conversas
|
|
103
|
+
- `leads_tags` - Tags de leads
|
|
104
|
+
|
|
105
|
+
## Como Usar
|
|
106
|
+
|
|
107
|
+
### Pré-requisitos
|
|
108
|
+
|
|
109
|
+
- PostgreSQL 12 ou superior
|
|
110
|
+
- Permissões para criação de tabelas e índices
|
|
111
|
+
- Cliente `psql` ou ferramenta equivalente
|
|
112
|
+
|
|
113
|
+
### Instalação Rápida
|
|
114
|
+
|
|
115
|
+
Execute todos os scripts de uma vez:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Navegar para o diretório de scripts
|
|
119
|
+
cd gagents-schemas/scripts
|
|
120
|
+
|
|
121
|
+
# Executar todos os 17 scripts
|
|
122
|
+
for module in accounts agents channels companies conversations conversations_tags credentials leads leads_channels leads_tags messages missions objectives objectives_tools tags tools users; do
|
|
123
|
+
echo "Criando tabela: $module"
|
|
124
|
+
psql -d sua_base_dados -f "$module/create_table.sql"
|
|
125
|
+
done
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Instalação Respeitando Dependências
|
|
129
|
+
|
|
130
|
+
Para uma nova instalação, execute na ordem recomendada:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# 1. Tabelas base (sem dependências)
|
|
134
|
+
psql -d sua_base_dados -f accounts/create_table.sql
|
|
135
|
+
psql -d sua_base_dados -f tags/create_table.sql
|
|
136
|
+
psql -d sua_base_dados -f companies/create_table.sql
|
|
137
|
+
|
|
138
|
+
# 2. Tabelas dependentes de accounts
|
|
139
|
+
psql -d sua_base_dados -f users/create_table.sql
|
|
140
|
+
psql -d sua_base_dados -f credentials/create_table.sql
|
|
141
|
+
psql -d sua_base_dados -f agents/create_table.sql
|
|
142
|
+
psql -d sua_base_dados -f leads/create_table.sql
|
|
143
|
+
|
|
144
|
+
# 3. Tabelas com múltiplas dependências
|
|
145
|
+
psql -d sua_base_dados -f tools/create_table.sql
|
|
146
|
+
psql -d sua_base_dados -f channels/create_table.sql
|
|
147
|
+
psql -d sua_base_dados -f missions/create_table.sql
|
|
148
|
+
psql -d sua_base_dados -f leads_channels/create_table.sql
|
|
149
|
+
|
|
150
|
+
# 4. Tabelas de nível superior
|
|
151
|
+
psql -d sua_base_dados -f conversations/create_table.sql
|
|
152
|
+
psql -d sua_base_dados -f messages/create_table.sql
|
|
153
|
+
psql -d sua_base_dados -f objectives/create_table.sql
|
|
154
|
+
|
|
155
|
+
# 5. Tabelas de relacionamento
|
|
156
|
+
psql -d sua_base_dados -f conversations_tags/create_table.sql
|
|
157
|
+
psql -d sua_base_dados -f leads_tags/create_table.sql
|
|
158
|
+
psql -d sua_base_dados -f objectives_tools/create_table.sql
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Execução Individual
|
|
162
|
+
|
|
163
|
+
Para executar scripts específicos:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Exemplo: criar apenas a tabela de agentes
|
|
167
|
+
psql -d sua_base_dados -f agents/create_table.sql
|
|
168
|
+
|
|
169
|
+
# Exemplo: recriar múltiplas tabelas
|
|
170
|
+
psql -d sua_base_dados -f accounts/create_table.sql
|
|
171
|
+
psql -d sua_base_dados -f agents/create_table.sql
|
|
172
|
+
psql -d sua_base_dados -f conversations/create_table.sql
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Verificação da Instalação
|
|
176
|
+
|
|
177
|
+
Após a execução, verifique se todas as tabelas foram criadas:
|
|
178
|
+
|
|
179
|
+
```sql
|
|
180
|
+
-- Verificar contagem de tabelas criadas
|
|
181
|
+
SELECT COUNT(*) as total_tabelas
|
|
182
|
+
FROM information_schema.tables
|
|
183
|
+
WHERE table_schema = 'public'
|
|
184
|
+
AND table_name IN (
|
|
185
|
+
'accounts', 'agents', 'channels', 'companies', 'conversations',
|
|
186
|
+
'conversations_tags', 'credentials', 'leads', 'leads_channels',
|
|
187
|
+
'leads_tags', 'messages', 'missions', 'objectives',
|
|
188
|
+
'objectives_tools', 'tags', 'tools', 'users'
|
|
189
|
+
);
|
|
190
|
+
-- Resultado esperado: 17
|
|
191
|
+
|
|
192
|
+
-- Verificar integridade referencial
|
|
193
|
+
SELECT
|
|
194
|
+
tc.table_name,
|
|
195
|
+
kcu.column_name,
|
|
196
|
+
ccu.table_name AS tabela_referenciada,
|
|
197
|
+
ccu.column_name AS coluna_referenciada
|
|
198
|
+
FROM information_schema.table_constraints AS tc
|
|
199
|
+
JOIN information_schema.key_column_usage AS kcu
|
|
200
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
201
|
+
JOIN information_schema.constraint_column_usage AS ccu
|
|
202
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
203
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
204
|
+
ORDER BY tc.table_name;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Informações Técnicas
|
|
208
|
+
|
|
209
|
+
### Características dos Scripts
|
|
210
|
+
|
|
211
|
+
**Execução Segura:**
|
|
212
|
+
- Todos os scripts usam `CREATE IF NOT EXISTS`
|
|
213
|
+
- Podem ser executados múltiplas vezes sem riscos
|
|
214
|
+
- Não há perda de dados em re-execuções
|
|
215
|
+
|
|
216
|
+
**Índices Automáticos:**
|
|
217
|
+
- Todos os índices usam `CREATE INDEX IF NOT EXISTS`
|
|
218
|
+
- Índices otimizados para consultas frequentes
|
|
219
|
+
- Cobertura de chaves estrangeiras e campos de busca
|
|
220
|
+
|
|
221
|
+
**Documentação Integrada:**
|
|
222
|
+
- Comentários detalhados em todas as tabelas e colunas
|
|
223
|
+
- Descrição do propósito de cada campo
|
|
224
|
+
- Explicação de relacionamentos e dependências
|
|
225
|
+
|
|
226
|
+
### Campos Automáticos Padrão
|
|
227
|
+
|
|
228
|
+
Todas as tabelas incluem os seguintes campos automáticos:
|
|
229
|
+
|
|
230
|
+
```sql
|
|
231
|
+
id SERIAL PRIMARY KEY, -- Chave primária auto-incremento
|
|
232
|
+
deleted BOOLEAN DEFAULT false NOT NULL, -- Exclusão lógica
|
|
233
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- Data de criação
|
|
234
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- Data de alteração
|
|
235
|
+
datetime_del TIMESTAMP NULL -- Data de exclusão lógica
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Convenções de Nomenclatura
|
|
239
|
+
|
|
240
|
+
**Tabelas:** Snake case no plural (`conversations`, `leads_tags`)
|
|
241
|
+
**Colunas:** Snake case no singular (`id_account`, `datetime_add`)
|
|
242
|
+
**Índices:** Prefixo `idx_` + nome da tabela + campo(s) (`idx_agents_id_account`)
|
|
243
|
+
**Chaves estrangeiras:** Prefixo `id_` + nome da tabela referenciada (`id_account`, `id_conversation`)
|
|
244
|
+
|
|
245
|
+
### Tipos de Dados Utilizados
|
|
246
|
+
|
|
247
|
+
| Tipo PostgreSQL | Uso | Exemplo |
|
|
248
|
+
|------------------|-----|---------|
|
|
249
|
+
| `SERIAL` | Chaves primárias auto-incremento | `id` |
|
|
250
|
+
| `INTEGER` | Chaves estrangeiras e números | `id_account`, `verified` |
|
|
251
|
+
| `VARCHAR(n)` | Textos com limite definido | `name VARCHAR(100)` |
|
|
252
|
+
| `TEXT` | Textos longos sem limite | `prompt`, `content` |
|
|
253
|
+
| `BOOLEAN` | Valores verdadeiro/falso | `deleted` |
|
|
254
|
+
| `TIMESTAMP` | Datas e horários | `datetime_add` |
|
|
255
|
+
|
|
256
|
+
### Relacionamentos e Integridade
|
|
257
|
+
|
|
258
|
+
**Cascata de Exclusão:**
|
|
259
|
+
- Configurada com `ON DELETE CASCADE` onde apropriado
|
|
260
|
+
- Garante limpeza automática de registros dependentes
|
|
261
|
+
|
|
262
|
+
**Restrições de Integridade:**
|
|
263
|
+
- Todas as chaves estrangeiras são validadas
|
|
264
|
+
- Campos obrigatórios definidos com `NOT NULL`
|
|
265
|
+
- Valores padrão configurados onde aplicável
|
|
266
|
+
|
|
267
|
+
### Compatibilidade
|
|
268
|
+
|
|
269
|
+
**PostgreSQL:** 12, 13, 14, 15, 16+
|
|
270
|
+
**Encoding:** UTF-8
|
|
271
|
+
**Timezone:** Suporte completo a fusos horários
|
|
272
|
+
**Collation:** Compatível com diferentes locales
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela AGENTS
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela que armazena informações dos agentes de IA
|
|
5
|
+
-- Dependências: accounts
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela agents
|
|
9
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela agents
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
title VARCHAR(255) NOT NULL,
|
|
20
|
+
photo VARCHAR(255),
|
|
21
|
+
prompt TEXT,
|
|
22
|
+
llm_model VARCHAR(255),
|
|
23
|
+
delayTyping INTEGER DEFAULT 0 NOT NULL,
|
|
24
|
+
waitingTime INTEGER DEFAULT 0 NOT NULL
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Cria índices para otimização de consultas
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_agents_deleted ON agents(deleted);
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_agents_id_account ON agents(id_account);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_agents_title ON agents(title);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_agents_llm_model ON agents(llm_model);
|
|
32
|
+
|
|
33
|
+
-- Adiciona comentários para documentação
|
|
34
|
+
COMMENT ON TABLE agents IS 'Tabela que armazena informações dos agentes de IA do sistema';
|
|
35
|
+
COMMENT ON COLUMN agents.id IS 'Identificador único do agente (chave primária)';
|
|
36
|
+
COMMENT ON COLUMN agents.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
37
|
+
COMMENT ON COLUMN agents.datetime_add IS 'Data e hora de criação do registro';
|
|
38
|
+
COMMENT ON COLUMN agents.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
39
|
+
COMMENT ON COLUMN agents.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
40
|
+
COMMENT ON COLUMN agents.id_account IS 'Referência para a conta proprietária do agente';
|
|
41
|
+
COMMENT ON COLUMN agents.title IS 'Nome/título do agente';
|
|
42
|
+
COMMENT ON COLUMN agents.photo IS 'URL ou caminho para a foto/avatar do agente';
|
|
43
|
+
COMMENT ON COLUMN agents.prompt IS 'Prompt base/personalidade do agente para interações';
|
|
44
|
+
COMMENT ON COLUMN agents.llm_model IS 'Modelo de linguagem utilizado pelo agente (referência para enum de modelos)';
|
|
45
|
+
COMMENT ON COLUMN agents.delayTyping IS 'Delay em milissegundos para simular digitação humana';
|
|
46
|
+
COMMENT ON COLUMN agents.waitingTime IS 'Tempo de espera em milissegundos antes de responder';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela CHANNELS
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela que armazena informações dos canais de comunicação
|
|
5
|
+
-- Dependências: accounts, credentials
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela channels
|
|
9
|
+
CREATE TABLE IF NOT EXISTS channels (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela channels
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
title VARCHAR(255) NOT NULL,
|
|
20
|
+
provider VARCHAR(50) NOT NULL DEFAULT 'web-chat',
|
|
21
|
+
url VARCHAR(255),
|
|
22
|
+
active BOOLEAN DEFAULT true NOT NULL,
|
|
23
|
+
id_credential INTEGER REFERENCES credentials(id) ON DELETE SET NULL,
|
|
24
|
+
handle VARCHAR(255)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Cria índices para otimização de consultas
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_channels_deleted ON channels(deleted);
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_channels_id_account ON channels(id_account);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_channels_provider ON channels(provider);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_channels_active ON channels(active);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_channels_id_credential ON channels(id_credential);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_channels_handle ON channels(handle);
|
|
34
|
+
|
|
35
|
+
-- Adiciona comentários para documentação
|
|
36
|
+
COMMENT ON TABLE channels IS 'Tabela que armazena informações dos canais de comunicação (WhatsApp, Telegram, etc.)';
|
|
37
|
+
COMMENT ON COLUMN channels.id IS 'Identificador único do canal (chave primária)';
|
|
38
|
+
COMMENT ON COLUMN channels.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
39
|
+
COMMENT ON COLUMN channels.datetime_add IS 'Data e hora de criação do registro';
|
|
40
|
+
COMMENT ON COLUMN channels.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
41
|
+
COMMENT ON COLUMN channels.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
42
|
+
COMMENT ON COLUMN channels.id_account IS 'Referência para a conta proprietária do canal';
|
|
43
|
+
COMMENT ON COLUMN channels.title IS 'Nome/título do canal';
|
|
44
|
+
COMMENT ON COLUMN channels.provider IS 'Tipo de provedor do canal (0=WhatsApp, 1=Telegram, 2=Discord, etc.)';
|
|
45
|
+
COMMENT ON COLUMN channels.url IS 'URL de conexão ou webhook do canal';
|
|
46
|
+
COMMENT ON COLUMN channels.active IS 'Flag indicando se o canal está ativo';
|
|
47
|
+
COMMENT ON COLUMN channels.id_credential IS 'Referência para as credenciais de autenticação do canal';
|
|
48
|
+
COMMENT ON COLUMN channels.handle IS 'Identificador único do canal no provedor (ex: número do WhatsApp, bot token, etc.)';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela COMPANIES
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela que armazena informações das empresas associadas aos leads
|
|
5
|
+
-- Dependências: accounts, leads
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela companies
|
|
9
|
+
CREATE TABLE IF NOT EXISTS companies (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela companies
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
id_lead INTEGER REFERENCES leads(id) ON DELETE CASCADE,
|
|
20
|
+
name VARCHAR(255),
|
|
21
|
+
domain VARCHAR(255),
|
|
22
|
+
notes TEXT,
|
|
23
|
+
industry VARCHAR(255),
|
|
24
|
+
size VARCHAR(255)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Cria índices para otimização de consultas
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_companies_deleted ON companies(deleted);
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_companies_id_account ON companies(id_account);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_companies_id_lead ON companies(id_lead);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_companies_name ON companies(name);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_companies_domain ON companies(domain);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_companies_industry ON companies(industry);
|
|
34
|
+
CREATE INDEX IF NOT EXISTS idx_companies_size ON companies(size);
|
|
35
|
+
|
|
36
|
+
-- Adiciona comentários para documentação
|
|
37
|
+
COMMENT ON TABLE companies IS 'Tabela que armazena informações das empresas associadas aos leads';
|
|
38
|
+
COMMENT ON COLUMN companies.id IS 'Identificador único da empresa (chave primária)';
|
|
39
|
+
COMMENT ON COLUMN companies.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
40
|
+
COMMENT ON COLUMN companies.datetime_add IS 'Data e hora de criação do registro';
|
|
41
|
+
COMMENT ON COLUMN companies.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
42
|
+
COMMENT ON COLUMN companies.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
43
|
+
COMMENT ON COLUMN companies.id_account IS 'Referência para a conta proprietária da empresa';
|
|
44
|
+
COMMENT ON COLUMN companies.id_lead IS 'Referência para o lead associado à empresa';
|
|
45
|
+
COMMENT ON COLUMN companies.name IS 'Nome da empresa';
|
|
46
|
+
COMMENT ON COLUMN companies.domain IS 'Domínio/website da empresa';
|
|
47
|
+
COMMENT ON COLUMN companies.notes IS 'Notas e observações sobre a empresa';
|
|
48
|
+
COMMENT ON COLUMN companies.industry IS 'Setor/indústria da empresa';
|
|
49
|
+
COMMENT ON COLUMN companies.size IS 'Tamanho da empresa (pequena, média, grande, etc.)';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
-- Script para conectar tabela conversations com tabela messages
|
|
2
|
+
-- Adiciona campo id_last_message e cria foreign key constraint
|
|
3
|
+
--
|
|
4
|
+
-- Autor: Sistema GAgents
|
|
5
|
+
-- Data: 2025-01-14
|
|
6
|
+
-- Descrição: Conecta conversations com messages através do campo id_last_message
|
|
7
|
+
|
|
8
|
+
-- =====================================================
|
|
9
|
+
-- 1. Adicionar campo id_last_message na tabela conversations
|
|
10
|
+
-- =====================================================
|
|
11
|
+
-- Campo nullable para permitir conversas sem mensagens ainda
|
|
12
|
+
ALTER TABLE conversations
|
|
13
|
+
ADD COLUMN IF NOT EXISTS id_last_message INTEGER;
|
|
14
|
+
|
|
15
|
+
-- =====================================================
|
|
16
|
+
-- 2. Criar foreign key constraint
|
|
17
|
+
-- =====================================================
|
|
18
|
+
-- Conecta conversations.id_last_message → messages.id
|
|
19
|
+
-- ON DELETE SET NULL: se a mensagem for deletada, apenas remove a referência
|
|
20
|
+
ALTER TABLE conversations
|
|
21
|
+
ADD CONSTRAINT IF NOT EXISTS fk_conversations_last_message
|
|
22
|
+
FOREIGN KEY (id_last_message) REFERENCES messages(id) ON DELETE SET NULL;
|
|
23
|
+
|
|
24
|
+
-- =====================================================
|
|
25
|
+
-- 3. Criar índice para otimização de consultas
|
|
26
|
+
-- =====================================================
|
|
27
|
+
-- Melhora performance em consultas que filtram por id_last_message
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_last_message
|
|
29
|
+
ON conversations(id_last_message);
|
|
30
|
+
|
|
31
|
+
-- =====================================================
|
|
32
|
+
-- Comentários sobre o uso:
|
|
33
|
+
-- =====================================================
|
|
34
|
+
-- Este campo permite:
|
|
35
|
+
-- - Identificar rapidamente a última mensagem de uma conversa
|
|
36
|
+
-- - Otimizar consultas de listagem de conversas com preview da última mensagem
|
|
37
|
+
-- - Manter integridade referencial com comportamento seguro (SET NULL)
|
|
38
|
+
--
|
|
39
|
+
-- Exemplo de uso:
|
|
40
|
+
-- SELECT c.*, m.content as last_message_content
|
|
41
|
+
-- FROM conversations c
|
|
42
|
+
-- LEFT JOIN messages m ON c.id_last_message = m.id;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela CONVERSATIONS
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela que armazena informações das conversas entre usuários e agentes
|
|
5
|
+
-- Dependências: accounts, agents, channels
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela conversations
|
|
9
|
+
CREATE TABLE IF NOT EXISTS conversations (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela conversations
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
id_agent INTEGER REFERENCES agents(id) ON DELETE SET NULL,
|
|
20
|
+
id_channel INTEGER REFERENCES channels(id) ON DELETE SET NULL,
|
|
21
|
+
id_lead_channel INTEGER REFERENCES leads_channels(id) ON DELETE SET NULL,
|
|
22
|
+
id_assignee INTEGER,
|
|
23
|
+
last_message_at TIMESTAMP,
|
|
24
|
+
id_last_message INTEGER REFERENCES messages(id) ON DELETE SET NULL,
|
|
25
|
+
stop_ai BOOLEAN DEFAULT false NOT NULL,
|
|
26
|
+
status VARCHAR(20) DEFAULT 'open' NOT NULL
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
-- Cria índices para otimização de consultas
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_deleted ON conversations(deleted);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_id_account ON conversations(id_account);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_id_agent ON conversations(id_agent);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_id_channel ON conversations(id_channel);
|
|
34
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_id_lead_channel ON conversations(id_lead_channel);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_id_assignee ON conversations(id_assignee);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_status ON conversations(status);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_last_message_at ON conversations(last_message_at);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_stop_ai ON conversations(stop_ai);
|
|
39
|
+
|
|
40
|
+
-- Adiciona comentários para documentação
|
|
41
|
+
COMMENT ON TABLE conversations IS 'Tabela que armazena informações das conversas entre usuários e agentes';
|
|
42
|
+
COMMENT ON COLUMN conversations.id IS 'Identificador único da conversa (chave primária)';
|
|
43
|
+
COMMENT ON COLUMN conversations.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
44
|
+
COMMENT ON COLUMN conversations.datetime_add IS 'Data e hora de criação do registro';
|
|
45
|
+
COMMENT ON COLUMN conversations.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
46
|
+
COMMENT ON COLUMN conversations.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
47
|
+
COMMENT ON COLUMN conversations.id_account IS 'Referência para a conta proprietária da conversa';
|
|
48
|
+
COMMENT ON COLUMN conversations.id_agent IS 'Referência para o agente responsável pela conversa';
|
|
49
|
+
COMMENT ON COLUMN conversations.id_channel IS 'Referência para o canal onde a conversa está acontecendo';
|
|
50
|
+
COMMENT ON COLUMN conversations.id_lead_channel IS 'Identificador do lead/canal na conversa';
|
|
51
|
+
COMMENT ON COLUMN conversations.id_assignee IS 'Identificador do usuário humano responsável pela conversa';
|
|
52
|
+
COMMENT ON COLUMN conversations.last_message_at IS 'Data e hora da última mensagem na conversa';
|
|
53
|
+
COMMENT ON COLUMN conversations.id_last_message IS 'Identificador da última mensagem na conversa';
|
|
54
|
+
COMMENT ON COLUMN conversations.stop_ai IS 'Flag indicando se o agente de IA deve parar de responder automaticamente';
|
|
55
|
+
COMMENT ON COLUMN conversations.status IS 'Status da conversa (open, closed, pending, etc.)';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela CONVERSATIONS_TAGS
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela de relacionamento entre conversas e tags (many-to-many)
|
|
5
|
+
-- Dependências: accounts, conversations, tags
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela conversations_tags
|
|
9
|
+
CREATE TABLE IF NOT EXISTS conversations_tags (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela conversations_tags
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
id_conversation INTEGER REFERENCES conversations(id) ON DELETE CASCADE,
|
|
20
|
+
id_tag INTEGER REFERENCES tags(id) ON DELETE CASCADE
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- Cria índices para otimização de consultas
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_tags_deleted ON conversations_tags(deleted);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_tags_id_account ON conversations_tags(id_account);
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_tags_id_conversation ON conversations_tags(id_conversation);
|
|
27
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_tags_id_tag ON conversations_tags(id_tag);
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_tags_conversation_tag ON conversations_tags(id_conversation, id_tag);
|
|
29
|
+
|
|
30
|
+
-- Adiciona comentários para documentação
|
|
31
|
+
COMMENT ON TABLE conversations_tags IS 'Tabela de relacionamento entre conversas e tags para categorização';
|
|
32
|
+
COMMENT ON COLUMN conversations_tags.id IS 'Identificador único do relacionamento conversa-tag (chave primária)';
|
|
33
|
+
COMMENT ON COLUMN conversations_tags.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
34
|
+
COMMENT ON COLUMN conversations_tags.datetime_add IS 'Data e hora de criação do registro';
|
|
35
|
+
COMMENT ON COLUMN conversations_tags.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
36
|
+
COMMENT ON COLUMN conversations_tags.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
37
|
+
COMMENT ON COLUMN conversations_tags.id_account IS 'Referência para a conta proprietária do relacionamento';
|
|
38
|
+
COMMENT ON COLUMN conversations_tags.id_conversation IS 'Referência para a conversa associada à tag';
|
|
39
|
+
COMMENT ON COLUMN conversations_tags.id_tag IS 'Referência para a tag associada à conversa';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
-- =====================================================
|
|
2
|
+
-- Script de criação da tabela CREDENTIALS
|
|
3
|
+
-- =====================================================
|
|
4
|
+
-- Descrição: Tabela que armazena credenciais de autenticação para integrações
|
|
5
|
+
-- Dependências: accounts
|
|
6
|
+
-- =====================================================
|
|
7
|
+
|
|
8
|
+
-- Cria a tabela credentials
|
|
9
|
+
CREATE TABLE IF NOT EXISTS credentials (
|
|
10
|
+
-- Propriedades automáticas (padrão para todas as tabelas)
|
|
11
|
+
id SERIAL PRIMARY KEY,
|
|
12
|
+
deleted BOOLEAN DEFAULT false NOT NULL,
|
|
13
|
+
datetime_add TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
14
|
+
datetime_alt TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
15
|
+
datetime_del TIMESTAMP NULL,
|
|
16
|
+
|
|
17
|
+
-- Propriedades específicas da tabela credentials
|
|
18
|
+
id_account INTEGER NOT NULL,
|
|
19
|
+
title VARCHAR(255) NOT NULL,
|
|
20
|
+
integration VARCHAR(50) DEFAULT 'web-chat' NOT NULL,
|
|
21
|
+
authType VARCHAR(20) DEFAULT 'none' NOT NULL,
|
|
22
|
+
userName VARCHAR(255),
|
|
23
|
+
password VARCHAR(255),
|
|
24
|
+
apiKey VARCHAR(255),
|
|
25
|
+
token VARCHAR(255),
|
|
26
|
+
paramName VARCHAR(255),
|
|
27
|
+
refreshToken VARCHAR(255),
|
|
28
|
+
clientSecret VARCHAR(255),
|
|
29
|
+
clientId VARCHAR(255),
|
|
30
|
+
sendIn VARCHAR(255) DEFAULT 'none' NOT NULL,
|
|
31
|
+
scheme VARCHAR(255) DEFAULT 'none' NOT NULL,
|
|
32
|
+
prefix VARCHAR(255)
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
-- Cria índices para otimização de consultas
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_deleted ON credentials(deleted);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_id_account ON credentials(id_account);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_integration ON credentials(integration);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_authType ON credentials(authType);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_title ON credentials(title);
|
|
41
|
+
|
|
42
|
+
-- Adiciona comentários para documentação
|
|
43
|
+
COMMENT ON TABLE credentials IS 'Tabela que armazena credenciais de autenticação para integrações com serviços externos';
|
|
44
|
+
COMMENT ON COLUMN credentials.id IS 'Identificador único da credencial (chave primária)';
|
|
45
|
+
COMMENT ON COLUMN credentials.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
46
|
+
COMMENT ON COLUMN credentials.datetime_add IS 'Data e hora de criação do registro';
|
|
47
|
+
COMMENT ON COLUMN credentials.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
48
|
+
COMMENT ON COLUMN credentials.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
49
|
+
COMMENT ON COLUMN credentials.id_account IS 'Referência para a conta proprietária da credencial';
|
|
50
|
+
COMMENT ON COLUMN credentials.title IS 'Título/nome identificador da credencial';
|
|
51
|
+
COMMENT ON COLUMN credentials.integration IS 'Tipo da integração (web-chat, whatsapp, z-api, evolution-api, telegram, facebook, instagram)';
|
|
52
|
+
COMMENT ON COLUMN credentials.authType IS 'Tipo de autenticação (0=Nenhum, 1=Básico, 2=OAuth2, 3=API Key)';
|
|
53
|
+
COMMENT ON COLUMN credentials.userName IS 'Nome de usuário para autenticação básica';
|
|
54
|
+
COMMENT ON COLUMN credentials.password IS 'Senha para autenticação básica (deve ser criptografada)';
|
|
55
|
+
COMMENT ON COLUMN credentials.apiKey IS 'Chave de API para autenticação por API Key';
|
|
56
|
+
COMMENT ON COLUMN credentials.token IS 'Token de acesso para autenticação por token';
|
|
57
|
+
COMMENT ON COLUMN credentials.paramName IS 'Nome do parâmetro para envio da credencial';
|
|
58
|
+
COMMENT ON COLUMN credentials.refreshToken IS 'Token de renovação para OAuth';
|
|
59
|
+
COMMENT ON COLUMN credentials.clientSecret IS 'Segredo do cliente para OAuth';
|
|
60
|
+
COMMENT ON COLUMN credentials.clientId IS 'ID do cliente para OAuth';
|
|
61
|
+
COMMENT ON COLUMN credentials.sendIn IS 'Local de envio da credencial (0=header, 1=query, 2=body)';
|
|
62
|
+
COMMENT ON COLUMN credentials.scheme IS 'Esquema de autenticação (0=Bearer, 1=Basic, 2=Custom)';
|
|
63
|
+
COMMENT ON COLUMN credentials.prefix IS 'Prefixo para o valor da credencial (ex: "Bearer ", "API-Key ")';
|