@greatapps/greatagents 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION_COMPLETE_DOCUMENTATION.md +672 -0
- package/package.json +1 -1
- package/scripts/README.md +128 -235
- package/scripts/constraints.sql +585 -0
- package/scripts/indexes.sql +663 -0
- package/scripts/migrate_v1.sql +1230 -0
- package/scripts/tables/001_accounts.sql +51 -0
- package/scripts/tables/002_users.sql +69 -0
- package/scripts/tables/003_people.sql +70 -0
- package/scripts/tables/004_tags.sql +62 -0
- package/scripts/tables/005_credentials.sql +79 -0
- package/scripts/tables/006_agents.sql +70 -0
- package/scripts/tables/007_tools.sql +68 -0
- package/scripts/tables/008_channels.sql +75 -0
- package/scripts/tables/009_leads.sql +85 -0
- package/scripts/tables/010_missions.sql +62 -0
- package/scripts/tables/011_objectives.sql +72 -0
- package/scripts/tables/012_conversations.sql +84 -0
- package/scripts/tables/013_objectives_tools.sql +66 -0
- package/scripts/tables/014_messages.sql +78 -0
- package/scripts/tables/015_companies.sql +77 -0
- package/scripts/tables/016_conversations_tags.sql +64 -0
- package/scripts/tables/017_leads_tags.sql +64 -0
- package/scripts/triggers.sql +497 -0
- package/src/modules/accounts/index.js +11 -0
- package/src/modules/accounts/properties.js +46 -0
- package/src/modules/channels/properties.js +1 -0
- package/src/modules/conversations/index.js +1 -1
- package/src/modules/conversations/properties.js +29 -26
- package/src/modules/credentials/properties.js +2 -2
- package/src/modules/messages/properties.js +40 -2
- package/src/modules/objectives_tools/index.js +1 -1
- package/src/modules/objectives_tools/properties.js +1 -37
- package/src/modules/tools/properties.js +1 -0
- package/src/modules/users/index.js +11 -0
- package/src/modules/users/properties.js +156 -0
- package/src/product.js +4 -0
- package/scripts/agents/create_table.sql +0 -43
- package/scripts/channels/create_table.sql +0 -48
- package/scripts/companies/create_table.sql +0 -52
- package/scripts/conversations/add_messages_reference.sql +0 -42
- package/scripts/conversations/create_table.sql +0 -55
- package/scripts/conversations_tags/create_table.sql +0 -39
- package/scripts/credentials/create_table.sql +0 -63
- package/scripts/leads/create_table.sql +0 -55
- package/scripts/leads_tags/create_table.sql +0 -39
- package/scripts/messages/create_table.sql +0 -44
- package/scripts/missions/create_table.sql +0 -39
- package/scripts/objectives/create_table.sql +0 -47
- package/scripts/objectives_tools/create_table.sql +0 -52
- package/scripts/people/create_table.sql +0 -51
- package/scripts/tags/create_table.sql +0 -38
- package/scripts/tools/create_table.sql +0 -43
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela LEADS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena informações dos leads/contatos
|
|
5
|
-
-- Dependências: accounts (comentada - tabela não existe), users, agents, missions, objectives
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela leads
|
|
9
|
-
CREATE TABLE IF NOT EXISTS leads (
|
|
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 leads
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_person INTEGER NOT NULL REFERENCES people(id) ON DELETE SET NULL,
|
|
20
|
-
email VARCHAR(255),
|
|
21
|
-
phone VARCHAR(20),
|
|
22
|
-
owner_user_id INTEGER,
|
|
23
|
-
current_agent_id INTEGER REFERENCES agents(id) ON DELETE SET NULL,
|
|
24
|
-
current_mission_id INTEGER REFERENCES missions(id) ON DELETE SET NULL,
|
|
25
|
-
current_objective_id INTEGER REFERENCES objectives(id) ON DELETE SET NULL,
|
|
26
|
-
notes TEXT
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
-- Cria índices para otimização de consultas
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_leads_deleted ON leads(deleted);
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_leads_id_account ON leads(id_account);
|
|
32
|
-
CREATE INDEX IF NOT EXISTS idx_leads_id_person ON leads(id_person);
|
|
33
|
-
CREATE INDEX IF NOT EXISTS idx_leads_email ON leads(email);
|
|
34
|
-
CREATE INDEX IF NOT EXISTS idx_leads_phone ON leads(phone);
|
|
35
|
-
CREATE INDEX IF NOT EXISTS idx_leads_owner_user_id ON leads(owner_user_id);
|
|
36
|
-
CREATE INDEX IF NOT EXISTS idx_leads_current_agent_id ON leads(current_agent_id);
|
|
37
|
-
CREATE INDEX IF NOT EXISTS idx_leads_current_mission_id ON leads(current_mission_id);
|
|
38
|
-
CREATE INDEX IF NOT EXISTS idx_leads_current_objective_id ON leads(current_objective_id);
|
|
39
|
-
|
|
40
|
-
-- Adiciona comentários para documentação
|
|
41
|
-
COMMENT ON TABLE leads IS 'Tabela que armazena informações dos leads/contatos do sistema';
|
|
42
|
-
COMMENT ON COLUMN leads.id IS 'Identificador único do lead (chave primária)';
|
|
43
|
-
COMMENT ON COLUMN leads.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
44
|
-
COMMENT ON COLUMN leads.datetime_add IS 'Data e hora de criação do registro';
|
|
45
|
-
COMMENT ON COLUMN leads.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
46
|
-
COMMENT ON COLUMN leads.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
47
|
-
COMMENT ON COLUMN leads.id_account IS 'Referência para a conta proprietária do lead';
|
|
48
|
-
COMMENT ON COLUMN leads.id_person IS 'Referência para a pessoa associada ao lead (tabela people)';
|
|
49
|
-
COMMENT ON COLUMN leads.email IS 'Endereço de e-mail do lead';
|
|
50
|
-
COMMENT ON COLUMN leads.phone IS 'Número de telefone do lead';
|
|
51
|
-
COMMENT ON COLUMN leads.owner_user_id IS 'Referência para o usuário proprietário do lead';
|
|
52
|
-
COMMENT ON COLUMN leads.current_agent_id IS 'Referência para o agente atual responsável pelo lead';
|
|
53
|
-
COMMENT ON COLUMN leads.current_mission_id IS 'Referência para a missão atual do lead';
|
|
54
|
-
COMMENT ON COLUMN leads.current_objective_id IS 'Referência para o objetivo atual do lead';
|
|
55
|
-
COMMENT ON COLUMN leads.notes IS 'Notas e observações sobre o lead';
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela LEADS_TAGS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela de relacionamento entre leads e tags (many-to-many)
|
|
5
|
-
-- Dependências: accounts, leads, tags
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela leads_tags
|
|
9
|
-
CREATE TABLE IF NOT EXISTS leads_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 leads_tags
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_lead INTEGER REFERENCES leads(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_leads_tags_deleted ON leads_tags(deleted);
|
|
25
|
-
CREATE INDEX IF NOT EXISTS idx_leads_tags_id_account ON leads_tags(id_account);
|
|
26
|
-
CREATE INDEX IF NOT EXISTS idx_leads_tags_id_lead ON leads_tags(id_lead);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_leads_tags_id_tag ON leads_tags(id_tag);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_leads_tags_lead_tag ON leads_tags(id_lead, id_tag);
|
|
29
|
-
|
|
30
|
-
-- Adiciona comentários para documentação
|
|
31
|
-
COMMENT ON TABLE leads_tags IS 'Tabela de relacionamento entre leads e tags para categorização';
|
|
32
|
-
COMMENT ON COLUMN leads_tags.id IS 'Identificador único do relacionamento lead-tag (chave primária)';
|
|
33
|
-
COMMENT ON COLUMN leads_tags.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
34
|
-
COMMENT ON COLUMN leads_tags.datetime_add IS 'Data e hora de criação do registro';
|
|
35
|
-
COMMENT ON COLUMN leads_tags.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
36
|
-
COMMENT ON COLUMN leads_tags.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
37
|
-
COMMENT ON COLUMN leads_tags.id_account IS 'Referência para a conta proprietária do relacionamento';
|
|
38
|
-
COMMENT ON COLUMN leads_tags.id_lead IS 'Referência para o lead associado à tag';
|
|
39
|
-
COMMENT ON COLUMN leads_tags.id_tag IS 'Referência para a tag associada ao lead';
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela MESSAGES
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena as mensagens das conversas
|
|
5
|
-
-- Dependências: accounts, conversations
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela messages
|
|
9
|
-
CREATE TABLE IF NOT EXISTS messages (
|
|
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 messages
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_conversation INTEGER REFERENCES conversations(id) ON DELETE CASCADE,
|
|
20
|
-
direction VARCHAR(10) DEFAULT 'in' NOT NULL,
|
|
21
|
-
role VARCHAR(20) DEFAULT 'user' NOT NULL,
|
|
22
|
-
content TEXT NOT NULL
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
-- Cria índices para otimização de consultas
|
|
26
|
-
CREATE INDEX IF NOT EXISTS idx_messages_deleted ON messages(deleted);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_messages_id_account ON messages(id_account);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_messages_id_conversation ON messages(id_conversation);
|
|
29
|
-
CREATE INDEX IF NOT EXISTS idx_messages_direction ON messages(direction);
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_messages_role ON messages(role);
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_messages_datetime_add ON messages(datetime_add);
|
|
32
|
-
|
|
33
|
-
-- Adiciona comentários para documentação
|
|
34
|
-
COMMENT ON TABLE messages IS 'Tabela que armazena as mensagens das conversas entre usuários e agentes';
|
|
35
|
-
COMMENT ON COLUMN messages.id IS 'Identificador único da mensagem (chave primária)';
|
|
36
|
-
COMMENT ON COLUMN messages.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
37
|
-
COMMENT ON COLUMN messages.datetime_add IS 'Data e hora de criação do registro';
|
|
38
|
-
COMMENT ON COLUMN messages.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
39
|
-
COMMENT ON COLUMN messages.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
40
|
-
COMMENT ON COLUMN messages.id_account IS 'Referência para a conta proprietária da mensagem';
|
|
41
|
-
COMMENT ON COLUMN messages.id_conversation IS 'Referência para a conversa à qual a mensagem pertence';
|
|
42
|
-
COMMENT ON COLUMN messages.direction IS 'Direção da mensagem (in=recebida, out=enviada)';
|
|
43
|
-
COMMENT ON COLUMN messages.role IS 'Papel do remetente (user=usuário, assistant=agente, system=sistema)';
|
|
44
|
-
COMMENT ON COLUMN messages.content IS 'Conteúdo da mensagem';
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela MISSIONS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena as missões/tarefas complexas dos agentes
|
|
5
|
-
-- Dependências: accounts, agents
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela missions
|
|
9
|
-
CREATE TABLE IF NOT EXISTS missions (
|
|
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 missions
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_agent INTEGER REFERENCES agents(id) ON DELETE SET NULL,
|
|
20
|
-
title VARCHAR(255) NOT NULL,
|
|
21
|
-
prompt TEXT
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
-- Cria índices para otimização de consultas
|
|
25
|
-
CREATE INDEX IF NOT EXISTS idx_missions_deleted ON missions(deleted);
|
|
26
|
-
CREATE INDEX IF NOT EXISTS idx_missions_id_account ON missions(id_account);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_missions_id_agent ON missions(id_agent);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_missions_title ON missions(title);
|
|
29
|
-
-- Adiciona comentários para documentação
|
|
30
|
-
COMMENT ON TABLE missions IS 'Tabela que armazena as missões/tarefas complexas que os agentes podem executar';
|
|
31
|
-
COMMENT ON COLUMN missions.id IS 'Identificador único da missão (chave primária)';
|
|
32
|
-
COMMENT ON COLUMN missions.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
33
|
-
COMMENT ON COLUMN missions.datetime_add IS 'Data e hora de criação do registro';
|
|
34
|
-
COMMENT ON COLUMN missions.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
35
|
-
COMMENT ON COLUMN missions.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
36
|
-
COMMENT ON COLUMN missions.id_account IS 'Referência para a conta proprietária da missão';
|
|
37
|
-
COMMENT ON COLUMN missions.id_agent IS 'Referência para o agente responsável pela missão';
|
|
38
|
-
COMMENT ON COLUMN missions.title IS 'Nome/título da missão';
|
|
39
|
-
COMMENT ON COLUMN missions.prompt IS 'Prompt/instruções específicas para a missão';
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela OBJECTIVES
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena os objetivos específicos dentro das missões
|
|
5
|
-
-- Dependências: accounts, agents, missions
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela objectives
|
|
9
|
-
CREATE TABLE IF NOT EXISTS objectives (
|
|
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 objectives
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_agent INTEGER REFERENCES agents(id) ON DELETE SET NULL,
|
|
20
|
-
id_mission INTEGER REFERENCES missions(id) ON DELETE CASCADE,
|
|
21
|
-
"order" INTEGER NOT NULL DEFAULT 0,
|
|
22
|
-
title VARCHAR(255) NOT NULL,
|
|
23
|
-
prompt TEXT
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
-- Cria índices para otimização de consultas
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_deleted ON objectives(deleted);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_id_account ON objectives(id_account);
|
|
29
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_id_agent ON objectives(id_agent);
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_id_mission ON objectives(id_mission);
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_order ON objectives("order");
|
|
32
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_title ON objectives(title);
|
|
33
|
-
|
|
34
|
-
-- Adiciona comentários para documentação
|
|
35
|
-
COMMENT ON TABLE objectives IS 'Tabela que armazena os objetivos específicos dentro das missões dos agentes';
|
|
36
|
-
COMMENT ON COLUMN objectives.id IS 'Identificador único do objetivo (chave primária)';
|
|
37
|
-
COMMENT ON COLUMN objectives.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
38
|
-
COMMENT ON COLUMN objectives.datetime_add IS 'Data e hora de criação do registro';
|
|
39
|
-
COMMENT ON COLUMN objectives.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
40
|
-
COMMENT ON COLUMN objectives.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
41
|
-
COMMENT ON COLUMN objectives.id_account IS 'Referência para a conta proprietária do objetivo';
|
|
42
|
-
COMMENT ON COLUMN objectives.id_agent IS 'Referência para o agente responsável pelo objetivo';
|
|
43
|
-
COMMENT ON COLUMN objectives.id_mission IS 'Referência para a missão à qual o objetivo pertence';
|
|
44
|
-
COMMENT ON COLUMN objectives."order" IS 'Ordem de execução do objetivo dentro da missão';
|
|
45
|
-
COMMENT ON COLUMN objectives.title IS 'Nome/título do objetivo';
|
|
46
|
-
COMMENT ON COLUMN objectives.prompt IS 'Prompt/instruções específicas para o objetivo';
|
|
47
|
-
COMMENT ON COLUMN objectives. IS 'Modelo de linguagem específico para este objetivo (sobrescreve o da missão/agente)';
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela OBJECTIVES_TOOLS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela de relacionamento entre objetivos e ferramentas
|
|
5
|
-
-- Dependências: accounts, agents, missions, objectives, tools
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela objectives_tools
|
|
9
|
-
CREATE TABLE IF NOT EXISTS objectives_tools (
|
|
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 objectives_tools
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
id_agent INTEGER REFERENCES agents(id) ON DELETE SET NULL,
|
|
20
|
-
id_mission INTEGER REFERENCES missions(id) ON DELETE CASCADE,
|
|
21
|
-
id_objective INTEGER REFERENCES objectives(id) ON DELETE CASCADE,
|
|
22
|
-
id_tool INTEGER REFERENCES tools(id) ON DELETE CASCADE,
|
|
23
|
-
instructions TEXT,
|
|
24
|
-
wait BOOLEAN DEFAULT false NOT NULL
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
-- Cria índices para otimização de consultas
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_deleted ON objectives_tools(deleted);
|
|
29
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_id_account ON objectives_tools(id_account);
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_id_agent ON objectives_tools(id_agent);
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_id_mission ON objectives_tools(id_mission);
|
|
32
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_id_objective ON objectives_tools(id_objective);
|
|
33
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_id_tool ON objectives_tools(id_tool);
|
|
34
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_wait ON objectives_tools(wait);
|
|
35
|
-
|
|
36
|
-
-- Cria índice composto para consultas de relacionamento
|
|
37
|
-
CREATE INDEX IF NOT EXISTS idx_objectives_tools_objective_tool ON objectives_tools(id_objective, id_tool);
|
|
38
|
-
|
|
39
|
-
-- Adiciona comentários para documentação
|
|
40
|
-
COMMENT ON TABLE objectives_tools IS 'Tabela de relacionamento entre objetivos e ferramentas, definindo quais ferramentas cada objetivo pode utilizar';
|
|
41
|
-
COMMENT ON COLUMN objectives_tools.id IS 'Identificador único do relacionamento (chave primária)';
|
|
42
|
-
COMMENT ON COLUMN objectives_tools.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
43
|
-
COMMENT ON COLUMN objectives_tools.datetime_add IS 'Data e hora de criação do registro';
|
|
44
|
-
COMMENT ON COLUMN objectives_tools.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
45
|
-
COMMENT ON COLUMN objectives_tools.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
46
|
-
COMMENT ON COLUMN objectives_tools.id_account IS 'Referência para a conta proprietária do relacionamento';
|
|
47
|
-
COMMENT ON COLUMN objectives_tools.id_agent IS 'Referência para o agente responsável';
|
|
48
|
-
COMMENT ON COLUMN objectives_tools.id_mission IS 'Referência para a missão à qual o objetivo pertence';
|
|
49
|
-
COMMENT ON COLUMN objectives_tools.id_objective IS 'Referência para o objetivo que utilizará a ferramenta';
|
|
50
|
-
COMMENT ON COLUMN objectives_tools.id_tool IS 'Referência para a ferramenta que será utilizada';
|
|
51
|
-
COMMENT ON COLUMN objectives_tools.instructions IS 'Instruções específicas sobre como usar a ferramenta neste objetivo';
|
|
52
|
-
COMMENT ON COLUMN objectives_tools.wait IS 'Flag indicando se deve aguardar a conclusão da ferramenta antes de prosseguir';
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela PEOPLE
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena informações das pessoas
|
|
5
|
-
-- Dependências: accounts (comentada - tabela não existe)
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela people
|
|
9
|
-
CREATE TABLE IF NOT EXISTS people (
|
|
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 people
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
-- FOREIGN KEY para accounts comentada pois tabela não existe
|
|
20
|
-
-- REFERENCES accounts(id) ON DELETE CASCADE,
|
|
21
|
-
full_name VARCHAR(255),
|
|
22
|
-
first_name VARCHAR(255),
|
|
23
|
-
last_name VARCHAR(255),
|
|
24
|
-
photo TEXT,
|
|
25
|
-
document VARCHAR(50),
|
|
26
|
-
birth_date DATE
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
-- Cria índices para otimização de consultas
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_people_deleted ON people(deleted);
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_people_id_account ON people(id_account);
|
|
32
|
-
CREATE INDEX IF NOT EXISTS idx_people_full_name ON people(full_name);
|
|
33
|
-
CREATE INDEX IF NOT EXISTS idx_people_first_name ON people(first_name);
|
|
34
|
-
CREATE INDEX IF NOT EXISTS idx_people_last_name ON people(last_name);
|
|
35
|
-
CREATE INDEX IF NOT EXISTS idx_people_document ON people(document);
|
|
36
|
-
CREATE INDEX IF NOT EXISTS idx_people_birth_date ON people(birth_date);
|
|
37
|
-
|
|
38
|
-
-- Adiciona comentários para documentação
|
|
39
|
-
COMMENT ON TABLE people IS 'Tabela que armazena informações das pessoas';
|
|
40
|
-
COMMENT ON COLUMN people.id IS 'Identificador único da pessoa (chave primária)';
|
|
41
|
-
COMMENT ON COLUMN people.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
42
|
-
COMMENT ON COLUMN people.datetime_add IS 'Data e hora de criação do registro';
|
|
43
|
-
COMMENT ON COLUMN people.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
44
|
-
COMMENT ON COLUMN people.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
45
|
-
COMMENT ON COLUMN people.id_account IS 'Referência para a conta proprietária da pessoa';
|
|
46
|
-
COMMENT ON COLUMN people.full_name IS 'Nome completo da pessoa';
|
|
47
|
-
COMMENT ON COLUMN people.first_name IS 'Primeiro nome da pessoa';
|
|
48
|
-
COMMENT ON COLUMN people.last_name IS 'Último nome da pessoa';
|
|
49
|
-
COMMENT ON COLUMN people.photo IS 'Foto da pessoa (armazenada como TEXT)';
|
|
50
|
-
COMMENT ON COLUMN people.document IS 'Documento da pessoa (CPF, CNPJ, etc.)';
|
|
51
|
-
COMMENT ON COLUMN people.birth_date IS 'Data de nascimento da pessoa';
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela TAGS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena informações das tags para categorização
|
|
5
|
-
-- Dependências: accounts
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela tags
|
|
9
|
-
CREATE TABLE IF NOT EXISTS 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 tags
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
name VARCHAR(255) NOT NULL,
|
|
20
|
-
color VARCHAR(7) DEFAULT '#000000' NOT NULL
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
-- Cria índices para otimização de consultas
|
|
24
|
-
CREATE INDEX IF NOT EXISTS idx_tags_deleted ON tags(deleted);
|
|
25
|
-
CREATE INDEX IF NOT EXISTS idx_tags_id_account ON tags(id_account);
|
|
26
|
-
CREATE INDEX IF NOT EXISTS idx_tags_name ON tags(name);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_tags_color ON tags(color);
|
|
28
|
-
|
|
29
|
-
-- Adiciona comentários para documentação
|
|
30
|
-
COMMENT ON TABLE tags IS 'Tabela que armazena informações das tags para categorização de leads e conversas';
|
|
31
|
-
COMMENT ON COLUMN tags.id IS 'Identificador único da tag (chave primária)';
|
|
32
|
-
COMMENT ON COLUMN tags.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
33
|
-
COMMENT ON COLUMN tags.datetime_add IS 'Data e hora de criação do registro';
|
|
34
|
-
COMMENT ON COLUMN tags.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
35
|
-
COMMENT ON COLUMN tags.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
36
|
-
COMMENT ON COLUMN tags.id_account IS 'Referência para a conta proprietária da tag';
|
|
37
|
-
COMMENT ON COLUMN tags.name IS 'Nome da tag para categorização';
|
|
38
|
-
COMMENT ON COLUMN tags.color IS 'Cor da tag em formato hexadecimal (ex: #FF0000)';
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
-- =====================================================
|
|
2
|
-
-- Script de criação da tabela TOOLS
|
|
3
|
-
-- =====================================================
|
|
4
|
-
-- Descrição: Tabela que armazena informações das ferramentas disponíveis para os agentes
|
|
5
|
-
-- Dependências: accounts, credentials
|
|
6
|
-
-- =====================================================
|
|
7
|
-
|
|
8
|
-
-- Cria a tabela tools
|
|
9
|
-
CREATE TABLE IF NOT EXISTS tools (
|
|
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 tools
|
|
18
|
-
id_account INTEGER NOT NULL,
|
|
19
|
-
title VARCHAR(255) NOT NULL,
|
|
20
|
-
type VARCHAR(50) DEFAULT 'mcp' NOT NULL,
|
|
21
|
-
description VARCHAR(1000),
|
|
22
|
-
id_credential INTEGER REFERENCES credentials(id) ON DELETE SET NULL
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
-- Cria índices para otimização de consultas
|
|
26
|
-
CREATE INDEX IF NOT EXISTS idx_tools_deleted ON tools(deleted);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_tools_id_account ON tools(id_account);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_tools_type ON tools(type);
|
|
29
|
-
CREATE INDEX IF NOT EXISTS idx_tools_title ON tools(title);
|
|
30
|
-
CREATE INDEX IF NOT EXISTS idx_tools_id_credential ON tools(id_credential);
|
|
31
|
-
|
|
32
|
-
-- Adiciona comentários para documentação
|
|
33
|
-
COMMENT ON TABLE tools IS 'Tabela que armazena informações das ferramentas disponíveis para os agentes utilizarem';
|
|
34
|
-
COMMENT ON COLUMN tools.id IS 'Identificador único da ferramenta (chave primária)';
|
|
35
|
-
COMMENT ON COLUMN tools.deleted IS 'Flag indicando se o registro foi excluído logicamente';
|
|
36
|
-
COMMENT ON COLUMN tools.datetime_add IS 'Data e hora de criação do registro';
|
|
37
|
-
COMMENT ON COLUMN tools.datetime_alt IS 'Data e hora da última alteração do registro';
|
|
38
|
-
COMMENT ON COLUMN tools.datetime_del IS 'Data e hora da exclusão lógica do registro';
|
|
39
|
-
COMMENT ON COLUMN tools.id_account IS 'Referência para a conta proprietária da ferramenta';
|
|
40
|
-
COMMENT ON COLUMN tools.title IS 'Nome/título da ferramenta';
|
|
41
|
-
COMMENT ON COLUMN tools.type IS 'Tipo da ferramenta (mcp, a2a, api, internalagent, internalfunction, nativeintegration, knowledgebase)';
|
|
42
|
-
COMMENT ON COLUMN tools.description IS 'Descrição detalhada da funcionalidade da ferramenta';
|
|
43
|
-
COMMENT ON COLUMN tools.id_credential IS 'Referência para as credenciais necessárias para usar a ferramenta';
|