@greatapps/greatagents 0.1.0 → 0.1.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greatapps/greatagents",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Schemas para GreatAgents",
5
5
  "main": "./src/product.js",
6
6
  "type": "module"
@@ -18,7 +18,8 @@ CREATE TABLE IF NOT EXISTS companies (
18
18
  id_account INTEGER NOT NULL,
19
19
  id_lead INTEGER REFERENCES leads(id) ON DELETE CASCADE,
20
20
  name VARCHAR(255),
21
- domain VARCHAR(255),
21
+ website VARCHAR(255),
22
+ document VARCHAR(50),
22
23
  notes TEXT,
23
24
  industry VARCHAR(255),
24
25
  size VARCHAR(255)
@@ -29,7 +30,8 @@ CREATE INDEX IF NOT EXISTS idx_companies_deleted ON companies(deleted);
29
30
  CREATE INDEX IF NOT EXISTS idx_companies_id_account ON companies(id_account);
30
31
  CREATE INDEX IF NOT EXISTS idx_companies_id_lead ON companies(id_lead);
31
32
  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_website ON companies(website);
34
+ CREATE INDEX IF NOT EXISTS idx_companies_document ON companies(document);
33
35
  CREATE INDEX IF NOT EXISTS idx_companies_industry ON companies(industry);
34
36
  CREATE INDEX IF NOT EXISTS idx_companies_size ON companies(size);
35
37
 
@@ -43,7 +45,8 @@ COMMENT ON COLUMN companies.datetime_del IS 'Data e hora da exclusão lógica do
43
45
  COMMENT ON COLUMN companies.id_account IS 'Referência para a conta proprietária da empresa';
44
46
  COMMENT ON COLUMN companies.id_lead IS 'Referência para o lead associado à empresa';
45
47
  COMMENT ON COLUMN companies.name IS 'Nome da empresa';
46
- COMMENT ON COLUMN companies.domain IS 'Domínio/website da empresa';
48
+ COMMENT ON COLUMN companies.website IS 'Website da empresa';
49
+ COMMENT ON COLUMN companies.document IS 'Documento da empresa (CNPJ, etc.)';
47
50
  COMMENT ON COLUMN companies.notes IS 'Notas e observações sobre a empresa';
48
51
  COMMENT ON COLUMN companies.industry IS 'Setor/indústria da empresa';
49
52
  COMMENT ON COLUMN companies.size IS 'Tamanho da empresa (pequena, média, grande, etc.)';
@@ -2,7 +2,7 @@
2
2
  -- Script de criação da tabela LEADS
3
3
  -- =====================================================
4
4
  -- Descrição: Tabela que armazena informações dos leads/contatos
5
- -- Dependências: accounts, users, agents, missions, objectives
5
+ -- Dependências: accounts (comentada - tabela não existe), users, agents, missions, objectives
6
6
  -- =====================================================
7
7
 
8
8
  -- Cria a tabela leads
@@ -15,11 +15,8 @@ CREATE TABLE IF NOT EXISTS leads (
15
15
  datetime_del TIMESTAMP NULL,
16
16
 
17
17
  -- Propriedades específicas da tabela leads
18
- id_account INTEGER NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
19
- full_name VARCHAR(255),
20
- first_name VARCHAR(255),
21
- last_name VARCHAR(255),
22
- photo VARCHAR(255),
18
+ id_account INTEGER NOT NULL,
19
+ id_person INTEGER NOT NULL REFERENCES people(id) ON DELETE SET NULL,
23
20
  email VARCHAR(255),
24
21
  phone VARCHAR(20),
25
22
  owner_user_id INTEGER,
@@ -32,9 +29,7 @@ CREATE TABLE IF NOT EXISTS leads (
32
29
  -- Cria índices para otimização de consultas
33
30
  CREATE INDEX IF NOT EXISTS idx_leads_deleted ON leads(deleted);
34
31
  CREATE INDEX IF NOT EXISTS idx_leads_id_account ON leads(id_account);
35
- CREATE INDEX IF NOT EXISTS idx_leads_full_name ON leads(full_name);
36
- CREATE INDEX IF NOT EXISTS idx_leads_first_name ON leads(first_name);
37
- CREATE INDEX IF NOT EXISTS idx_leads_last_name ON leads(last_name);
32
+ CREATE INDEX IF NOT EXISTS idx_leads_id_person ON leads(id_person);
38
33
  CREATE INDEX IF NOT EXISTS idx_leads_email ON leads(email);
39
34
  CREATE INDEX IF NOT EXISTS idx_leads_phone ON leads(phone);
40
35
  CREATE INDEX IF NOT EXISTS idx_leads_owner_user_id ON leads(owner_user_id);
@@ -50,10 +45,7 @@ COMMENT ON COLUMN leads.datetime_add IS 'Data e hora de criação do registro';
50
45
  COMMENT ON COLUMN leads.datetime_alt IS 'Data e hora da última alteração do registro';
51
46
  COMMENT ON COLUMN leads.datetime_del IS 'Data e hora da exclusão lógica do registro';
52
47
  COMMENT ON COLUMN leads.id_account IS 'Referência para a conta proprietária do lead';
53
- COMMENT ON COLUMN leads.full_name IS 'Nome completo do lead';
54
- COMMENT ON COLUMN leads.first_name IS 'Primeiro nome do lead';
55
- COMMENT ON COLUMN leads.last_name IS 'Último nome do lead';
56
- COMMENT ON COLUMN leads.photo IS 'URL da foto do lead';
48
+ COMMENT ON COLUMN leads.id_person IS 'Referência para a pessoa associada ao lead (tabela people)';
57
49
  COMMENT ON COLUMN leads.email IS 'Endereço de e-mail do lead';
58
50
  COMMENT ON COLUMN leads.phone IS 'Número de telefone do lead';
59
51
  COMMENT ON COLUMN leads.owner_user_id IS 'Referência para o usuário proprietário do lead';
@@ -0,0 +1,51 @@
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,5 +1,3 @@
1
- import { llmModels } from "../../llm/models.js";
2
-
3
1
  export const properties = {
4
2
  id: {
5
3
  type: "number",
@@ -111,7 +109,23 @@ export const properties = {
111
109
  type: "string",
112
110
  filterable: true,
113
111
  default: "gpt-3.5",
114
- options: llmModels,
112
+ options: [
113
+ { value: "gpt-3.5", label: { "pt-br": "GPT-3.5", "en": "GPT-3.5" } },
114
+ { value: "gpt-4", label: { "pt-br": "GPT-4", "en": "GPT-4" } },
115
+ { value: "gpt-4o", label: { "pt-br": "GPT-4o", "en": "GPT-4o" } },
116
+ { value: "gpt-4.1", label: { "pt-br": "GPT-4.1", "en": "GPT-4.1" } },
117
+ { value: "gpt-5", label: { "pt-br": "GPT-5", "en": "GPT-5" } },
118
+ { value: "gtp-4 mini", label: { "pt-br": "GPT-4 mini", "en": "GPT-4 mini" } },
119
+ { value: "gtp-4o mini", label: { "pt-br": "GPT-4o mini", "en": "GPT-4o mini" } },
120
+ { value: "gpt-4.1 mini", label: { "pt-br": "GPT-4.1 mini", "en": "GPT-4.1 mini" } },
121
+ { value: "gpt-5 mini", label: { "pt-br": "GPT-5 mini", "en": "GPT-5 mini" } },
122
+ { value: "gemini-2.0 flash", label: { "pt-br": "Gemini 2.0 Flash", "en": "Gemini 2.0 Flash" } },
123
+ { value: "gemnini-2.5 pro", label: { "pt-br": "Gemini 2.5 Pro", "en": "Gemini 2.5 Pro" } },
124
+ { value: "claude-3.7 sonnet", label: { "pt-br": "Claude 3.7 Sonnet", "en": "Claude 3.7 Sonnet" } },
125
+ { value: "claude-4.0 sonnet", label: { "pt-br": "Claude 4.0 Sonnet", "en": "Claude 4.0 Sonnet" } },
126
+ { value: "deepseek-v3", label: { "pt-br": "DeepSeek V3", "en": "DeepSeek V3" } },
127
+ { value: "deepseek-r1", label: { "pt-br": "DeepSeek R1", "en": "DeepSeek R1" } },
128
+ ],
115
129
  interface: {
116
130
  component: "select",
117
131
  label: {
@@ -83,21 +83,40 @@ export const properties = {
83
83
  }
84
84
  }
85
85
  },
86
- domain: {
86
+ website: {
87
87
  type: "string",
88
88
  searchable: true,
89
89
  validation: {
90
- maxLength: 255
90
+ maxLength: 255,
91
+ pattern: "url"
92
+ },
93
+ interface: {
94
+ label: {
95
+ "pt-br": "Website",
96
+ "en": "Website"
97
+ },
98
+ component: "string",
99
+ placeholder: {
100
+ "pt-br": "Website da empresa",
101
+ "en": "Company website"
102
+ }
103
+ }
104
+ },
105
+ document: {
106
+ type: "string",
107
+ searchable: true,
108
+ validation: {
109
+ maxLength: 50
91
110
  },
92
111
  interface: {
93
112
  label: {
94
- "pt-br": "Domínio",
95
- "en": "Domain"
113
+ "pt-br": "CNPJ",
114
+ "en": "Document"
96
115
  },
97
116
  component: "string",
98
117
  placeholder: {
99
- "pt-br": "Domínio da empresa",
100
- "en": "Company domain"
118
+ "pt-br": "CNPJ da empresa",
119
+ "en": "Company document"
101
120
  }
102
121
  }
103
122
  },
@@ -4,7 +4,7 @@ export default {
4
4
  product: "greatagents",
5
5
  name: "leads",
6
6
  cache: { ttlView: 30, ttlList: 0 },
7
- params: [ "id_account" ],
7
+ params: [ "id_account", "id_person" ],
8
8
  properties: properties,
9
9
  routes: {}
10
10
  };
@@ -45,86 +45,26 @@ export const properties = {
45
45
  disabled: true
46
46
  }
47
47
  },
48
- full_name: {
49
- type: "string",
50
- searchable: true,
51
- validation: {
52
- maxLength: 255
53
- },
54
- interface: {
55
- label: {
56
- "pt-br": "Nome completo",
57
- "en": "Full name"
58
- },
59
- component: "string",
60
- placeholder: {
61
- "pt-br": "Nome completo do lead",
62
- "en": "Full name of the lead"
63
- }
64
- }
65
- },
66
- first_name: {
67
- type: "string",
68
- searchable: true,
69
- validation: {
70
- maxLength: 255
71
- },
72
- interface: {
73
- label: {
74
- "pt-br": "Primeiro nome",
75
- "en": "First name"
76
- },
77
- component: "string",
78
- placeholder: {
79
- "pt-br": "Primeiro nome do lead",
80
- "en": "First name of the lead"
81
- }
82
- }
83
- },
84
- last_name: {
85
- type: "string",
86
- searchable: true,
87
- validation: {
88
- maxLength: 255
89
- },
90
- interface: {
91
- label: {
92
- "pt-br": "Último nome",
93
- "en": "Last name"
94
- },
95
- component: "string",
96
- placeholder: {
97
- "pt-br": "Último nome do lead",
98
- "en": "Last name of the lead"
99
- }
100
- }
101
- },
102
- photo: {
103
- type: "image",
104
- file: {
105
- types: [
106
- "png",
107
- "jpg",
108
- "jpeg",
109
- "gif",
110
- "svg",
111
- "webp"
112
- ],
113
- storage: "gpages",
114
- width: 200,
115
- height: 200
48
+ id_person: {
49
+ type: "number",
50
+ required: true,
51
+ updatable: false,
52
+ filterable: true,
53
+ reference: {
54
+ module: "people",
55
+ label: "full_name",
56
+ value: "id",
57
+ disabled: true
116
58
  },
117
59
  interface: {
118
60
  label: {
119
- "pt-br": "Foto",
120
- "en": "Photo"
61
+ "pt-br": "Pessoa",
62
+ "en": "Person"
121
63
  },
122
- component: "image",
123
- list: true,
124
- view: true,
125
- edit: true
64
+ component: "select",
65
+ disabled: true
126
66
  }
127
- },
67
+ },
128
68
  email: {
129
69
  type: "string",
130
70
  searchable: true,
@@ -1,5 +1,3 @@
1
- import { llmModels } from "../../llm/models.js";
2
-
3
1
  export const properties = {
4
2
  id: {
5
3
  type: "number",
@@ -103,7 +101,23 @@ export const properties = {
103
101
  type: "string",
104
102
  filterable: true,
105
103
  default: "gpt-3.5",
106
- options: llmModels,
104
+ options: [
105
+ { value: "gpt-3.5", label: { "pt-br": "GPT-3.5", "en": "GPT-3.5" } },
106
+ { value: "gpt-4", label: { "pt-br": "GPT-4", "en": "GPT-4" } },
107
+ { value: "gpt-4o", label: { "pt-br": "GPT-4o", "en": "GPT-4o" } },
108
+ { value: "gpt-4.1", label: { "pt-br": "GPT-4.1", "en": "GPT-4.1" } },
109
+ { value: "gpt-5", label: { "pt-br": "GPT-5", "en": "GPT-5" } },
110
+ { value: "gtp-4 mini", label: { "pt-br": "GPT-4 mini", "en": "GPT-4 mini" } },
111
+ { value: "gtp-4o mini", label: { "pt-br": "GPT-4o mini", "en": "GPT-4o mini" } },
112
+ { value: "gpt-4.1 mini", label: { "pt-br": "GPT-4.1 mini", "en": "GPT-4.1 mini" } },
113
+ { value: "gpt-5 mini", label: { "pt-br": "GPT-5 mini", "en": "GPT-5 mini" } },
114
+ { value: "gemini-2.0 flash", label: { "pt-br": "Gemini 2.0 Flash", "en": "Gemini 2.0 Flash" } },
115
+ { value: "gemnini-2.5 pro", label: { "pt-br": "Gemini 2.5 Pro", "en": "Gemini 2.5 Pro" } },
116
+ { value: "claude-3.7 sonnet", label: { "pt-br": "Claude 3.7 Sonnet", "en": "Claude 3.7 Sonnet" } },
117
+ { value: "claude-4.0 sonnet", label: { "pt-br": "Claude 4.0 Sonnet", "en": "Claude 4.0 Sonnet" } },
118
+ { value: "deepseek-v3", label: { "pt-br": "DeepSeek V3", "en": "DeepSeek V3" } },
119
+ { value: "deepseek-r1", label: { "pt-br": "DeepSeek R1", "en": "DeepSeek R1" } },
120
+ ],
107
121
  interface: {
108
122
  component: "select",
109
123
  label: {
@@ -1,5 +1,3 @@
1
- import { llmModels } from "../../llm/models.js";
2
-
3
1
  export const properties = {
4
2
  id: {
5
3
  type: "number",
@@ -134,7 +132,23 @@ export const properties = {
134
132
  type: "string",
135
133
  filterable: true,
136
134
  default: "gpt-3.5",
137
- options: llmModels,
135
+ options: [
136
+ { value: "gpt-3.5", label: { "pt-br": "GPT-3.5", "en": "GPT-3.5" } },
137
+ { value: "gpt-4", label: { "pt-br": "GPT-4", "en": "GPT-4" } },
138
+ { value: "gpt-4o", label: { "pt-br": "GPT-4o", "en": "GPT-4o" } },
139
+ { value: "gpt-4.1", label: { "pt-br": "GPT-4.1", "en": "GPT-4.1" } },
140
+ { value: "gpt-5", label: { "pt-br": "GPT-5", "en": "GPT-5" } },
141
+ { value: "gtp-4 mini", label: { "pt-br": "GPT-4 mini", "en": "GPT-4 mini" } },
142
+ { value: "gtp-4o mini", label: { "pt-br": "GPT-4o mini", "en": "GPT-4o mini" } },
143
+ { value: "gpt-4.1 mini", label: { "pt-br": "GPT-4.1 mini", "en": "GPT-4.1 mini" } },
144
+ { value: "gpt-5 mini", label: { "pt-br": "GPT-5 mini", "en": "GPT-5 mini" } },
145
+ { value: "gemini-2.0 flash", label: { "pt-br": "Gemini 2.0 Flash", "en": "Gemini 2.0 Flash" } },
146
+ { value: "gemnini-2.5 pro", label: { "pt-br": "Gemini 2.5 Pro", "en": "Gemini 2.5 Pro" } },
147
+ { value: "claude-3.7 sonnet", label: { "pt-br": "Claude 3.7 Sonnet", "en": "Claude 3.7 Sonnet" } },
148
+ { value: "claude-4.0 sonnet", label: { "pt-br": "Claude 4.0 Sonnet", "en": "Claude 4.0 Sonnet" } },
149
+ { value: "deepseek-v3", label: { "pt-br": "DeepSeek V3", "en": "DeepSeek V3" } },
150
+ { value: "deepseek-r1", label: { "pt-br": "DeepSeek R1", "en": "DeepSeek R1" } },
151
+ ],
138
152
  interface: {
139
153
  component: "select",
140
154
  label: {
@@ -0,0 +1,10 @@
1
+ import { properties } from "./properties.js";
2
+
3
+ export default {
4
+ product: "greatagents",
5
+ name: "people",
6
+ cache: { ttlView: 30, ttlList: 0 },
7
+ params: [ "id_account" ],
8
+ properties: properties,
9
+ routes: {}
10
+ };
@@ -0,0 +1,161 @@
1
+ export const properties = {
2
+ id: {
3
+ type: "number",
4
+ filterable: true,
5
+ unique: true,
6
+ autoIncrement: true,
7
+ index: true
8
+ },
9
+ deleted: {
10
+ type: "boolean",
11
+ default: false,
12
+ filterable: true
13
+ },
14
+ datetime_add: {
15
+ type: "date",
16
+ filterable: true,
17
+ updatable: false
18
+ },
19
+ datetime_alt: {
20
+ type: "date",
21
+ filterable: true,
22
+ updatable: true
23
+ },
24
+ datetime_del: {
25
+ type: "date",
26
+ filterable: true
27
+ },
28
+ id_account: {
29
+ type: "number",
30
+ required: true,
31
+ updatable: false,
32
+ filterable: true,
33
+ reference: {
34
+ module: "accounts",
35
+ label: "name",
36
+ value: "id",
37
+ disabled: true
38
+ },
39
+ interface: {
40
+ label: {
41
+ "pt-br": "Conta",
42
+ "en": "Account"
43
+ },
44
+ component: "select",
45
+ disabled: true
46
+ }
47
+ },
48
+ full_name: {
49
+ type: "string",
50
+ searchable: true,
51
+ validation: {
52
+ maxLength: 255
53
+ },
54
+ interface: {
55
+ label: {
56
+ "pt-br": "Nome completo",
57
+ "en": "Full name"
58
+ },
59
+ component: "string",
60
+ placeholder: {
61
+ "pt-br": "Nome completo do lead",
62
+ "en": "Full name of the lead"
63
+ }
64
+ }
65
+ },
66
+ first_name: {
67
+ type: "string",
68
+ searchable: true,
69
+ validation: {
70
+ maxLength: 255
71
+ },
72
+ interface: {
73
+ label: {
74
+ "pt-br": "Primeiro nome",
75
+ "en": "First name"
76
+ },
77
+ component: "string",
78
+ placeholder: {
79
+ "pt-br": "Primeiro nome do lead",
80
+ "en": "First name of the lead"
81
+ }
82
+ }
83
+ },
84
+ last_name: {
85
+ type: "string",
86
+ searchable: true,
87
+ validation: {
88
+ maxLength: 255
89
+ },
90
+ interface: {
91
+ label: {
92
+ "pt-br": "Último nome",
93
+ "en": "Last name"
94
+ },
95
+ component: "string",
96
+ placeholder: {
97
+ "pt-br": "Último nome do lead",
98
+ "en": "Last name of the lead"
99
+ }
100
+ }
101
+ },
102
+ photo: {
103
+ type: "image",
104
+ file: {
105
+ types: [
106
+ "png",
107
+ "jpg",
108
+ "jpeg",
109
+ "gif",
110
+ "svg",
111
+ "webp"
112
+ ],
113
+ storage: "gpages",
114
+ width: 200,
115
+ height: 200
116
+ },
117
+ interface: {
118
+ label: {
119
+ "pt-br": "Foto",
120
+ "en": "Photo"
121
+ },
122
+ component: "image",
123
+ list: true,
124
+ view: true,
125
+ edit: true
126
+ }
127
+ },
128
+ document: {
129
+ type: "string",
130
+ searchable: true,
131
+ validation: {
132
+ maxLength: 50
133
+ },
134
+ interface: {
135
+ label: {
136
+ "pt-br": "Documento",
137
+ "en": "Document"
138
+ },
139
+ component: "string",
140
+ placeholder: {
141
+ "pt-br": "CPF ou CNPJ do lead",
142
+ "en": "Lead's document"
143
+ }
144
+ }
145
+ },
146
+ birth_date: {
147
+ type: "date",
148
+ filterable: true,
149
+ interface: {
150
+ label: {
151
+ "pt-br": "Data de nascimento",
152
+ "en": "Birth date"
153
+ },
154
+ component: "date",
155
+ placeholder: {
156
+ "pt-br": "Data de nascimento do lead",
157
+ "en": "Lead's birth date"
158
+ }
159
+ }
160
+ },
161
+ };