rapida-partner 1.4.1 → 1.5.0

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.
@@ -1,120 +0,0 @@
1
- import { EDataType } from "../../../enums/form.enum";
2
- import type { IForm } from "../../../interfaces/form.interface";
3
- import { companyForm } from "./company.form";
4
- import { personForm } from "./person.form";
5
-
6
- export const customerForm: IForm = {
7
- title: "Gerenciar cliente",
8
- id: "customerForm",
9
- componentType: "form",
10
- contracts: [
11
- {
12
- id: "customerPeople",
13
- endpoint: "/customers/people",
14
- actions: ["create", "update", "get", "getById", "delete"],
15
- request: {
16
- entity: "Customers",
17
- relatedEntity: {
18
- entity: "People", // adiciona campo chamado relatedEntity amaarrado ao valor
19
- connectionAttribute: "_id", // vai criar um campo chamado relatedEntityId
20
- fieldsFromEntity: [{
21
- fields: personForm,
22
- contractId: "people",
23
- }]
24
- },
25
- fields: []
26
- },
27
- conditions: [
28
- {
29
- type: "form",
30
- elements: [
31
- {
32
- key: "entityRelated",
33
- comparisonOperator: "===",
34
- value: "People"
35
- }
36
- ]
37
- }
38
- ]
39
- },
40
- {
41
- id: "customerCompanies",
42
- endpoint: "/customers/companies",
43
- actions: ["create", "update", "get", "getById", "delete"],
44
- request: {
45
- entity: "Customers",
46
- relatedEntity: {
47
- entity: "Companies",
48
- connectionAttribute: "_id",
49
- fieldsFromEntity: [
50
- {
51
- fields: companyForm,
52
- contractId: "companies"
53
- }
54
- ]
55
- },
56
- fields: [
57
- { name: "entityId", dataType: EDataType.UNIQUEIDENTIFIER },
58
- { name: "entityRelated", dataType: EDataType.NVARCHAR }
59
- ]
60
- },
61
- conditions: [
62
- {
63
- type: "form",
64
- elements: [
65
- {
66
- key: "entityRelated",
67
- comparisonOperator: "===",
68
- value: "Companies"
69
- }
70
- ]
71
- }
72
- ]
73
- }
74
- ],
75
- elements: [
76
- {
77
- type: "select",
78
- dataType: EDataType.NVARCHAR,
79
- label: "Tipo de cliente",
80
- name: "entityRelated",
81
- options: [
82
- { label: "Pessoa", value: "People" },
83
- { label: "Empresa", value: "Companies" }
84
- ],
85
- isDisabledOnUpdate: true,
86
- },
87
- {
88
- type: "inheritance",
89
- form: personForm,
90
- conditions: [
91
- {
92
- type: "form",
93
- elements: [
94
- {
95
- key: "entityRelated",
96
- comparisonOperator: "===",
97
- value: "People"
98
- }
99
- ]
100
- }
101
- ]
102
- },
103
- {
104
- type: "inheritance",
105
- form: companyForm,
106
- conditions: [
107
- {
108
- type: "form",
109
- elements: [
110
- {
111
- key: "entityRelated",
112
- comparisonOperator: "===",
113
- value: "Companies"
114
- }
115
- ]
116
- }
117
- ]
118
- }
119
- ]
120
- }
@@ -1,479 +0,0 @@
1
- import { COUNTRIES_FROM_EARTH } from "../../../constants/options/countriesFromEarth";
2
- import { EDataType } from "../../../enums/form.enum";
3
- import type { IForm } from "../../../interfaces/form.interface";
4
-
5
- export const personForm: IForm = {
6
- title: "Gerenciamento de cliente pessoa",
7
- userStory: `Como um usuário autorizado, eu quero usar o formulário de gerenciamento de pessoa para inserir e editar informações de clientes, incluindo dados principais (como nome, nacionalidade, CPF, data de nascimento, gênero, foto, telefones e e-mails), contatos e redes sociais (como telefones secundários, e-mails e links de sites), e endereços, para que eu possa manter um registro completo e atualizado das pessoas no sistema.`,
8
- componentType: "form",
9
- id: "personForm",
10
- contracts: [{
11
- id: "people",
12
- endpoint: "/people",
13
- actions: ["create", "get", "getById", "update", "delete"],
14
- request: {
15
- entity: "People",
16
- description: "Represents an individual person with personal details and contact information.",
17
- fields: [
18
- { name: "_id", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
19
- { name: "country", dataType: EDataType.NVARCHAR, isRequired: true, maxSize: 100 },
20
- { name: "cpf", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 14 },
21
- { name: "passport", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 20 },
22
- { name: "passportIssueDate", dataType: EDataType.DATETIME2, isRequired: false },
23
- { name: "passportExpiryDate", dataType: EDataType.DATETIME2, isRequired: false },
24
- { name: "name", dataType: EDataType.NVARCHAR, isRequired: true, maxSize: 200 },
25
- { name: "gender", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 10, enum: ["male", "female", "other"] },
26
- { name: "birthday", dataType: EDataType.DATETIME2, isRequired: false },
27
- { name: "picture", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
28
- { name: "phoneOne", dataType: EDataType.NVARCHAR, isRequired: true, maxSize: 20 },
29
- { name: "emailOne", dataType: EDataType.NVARCHAR, isRequired: true, maxSize: 100 },
30
- { name: "addressOneZipCode", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 10 },
31
- { name: "addressOneStreet", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
32
- { name: "addressOneDistrict", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
33
- { name: "addressOneNumber", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 20 },
34
- { name: "addressOneComplement", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
35
- { name: "addressOneCity", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
36
- { name: "addressOneState", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
37
- { name: "addressOneLatitude", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 50 },
38
- { name: "addressOneLongitude", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 50 },
39
- { name: "addressTwoZipCode", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 10 },
40
- { name: "addressTwoStreet", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
41
- { name: "addressTwoDistrict", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
42
- { name: "addressTwoNumber", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 20 },
43
- { name: "addressTwoComplement", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
44
- { name: "addressTwoCity", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
45
- { name: "addressTwoState", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
46
- { name: "addressTwoLatitude", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 50 },
47
- { name: "addressTwoLongitude", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 50 },
48
- { name: "phoneTwo", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 20 },
49
- { name: "emailTwo", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
50
- { name: "siteOne", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
51
- { name: "siteTwo", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
52
- { name: "linkedin", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
53
- { name: "instagram", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
54
- { name: "facebook", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 200 },
55
- { name: "nickname", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 100 },
56
- { name: "personDescription", dataType: EDataType.LONGTEXT, isRequired: false },
57
- { name: "personMaritalStatus", dataType: EDataType.NVARCHAR, isRequired: false, maxSize: 20, enum: ["single", "married", "divorced", "widower", "engaged", "stableUnion"] },
58
- ]
59
- },
60
- }],
61
- guards: "isAuthorized",
62
- elements: [
63
- {
64
- id: "personTab",
65
- type: "tab",
66
- tabs: [
67
- {
68
- id: "personMainDataTab",
69
- title: "Dados principais",
70
- elements: [
71
- {
72
- label: "Nacionalidade",
73
- type: "select",
74
- name: "country",
75
- dataType: EDataType.TEXT,
76
- options: COUNTRIES_FROM_EARTH.map(country => ({ label: country.brazilianPortugueseName, value: country.englishNameAsValue })),
77
- isRequired: true,
78
- },
79
- {
80
- label: "CPF",
81
- type: "input",
82
- dataType: EDataType.TEXT,
83
- name: "cpf",
84
- validators: ["cpf"],
85
- isUnique: true,
86
- conditions: [
87
- {
88
- type: "form",
89
- elements: [
90
- {
91
- key: "country",
92
- value: "brazilian",
93
- comparisonOperator: "===",
94
- }
95
- ]
96
- },
97
- ]
98
- },
99
- {
100
- label: "Passaporte",
101
- type: "input",
102
- dataType: EDataType.TEXT,
103
- name: "passport",
104
- isUnique: true,
105
- conditions: [
106
- {
107
- type: "form",
108
- elements: [
109
- {
110
- key: "country",
111
- value: "brazilian",
112
- comparisonOperator: "!==",
113
- }
114
- ]
115
- },
116
- ]
117
- },
118
- {
119
- label: "Data de emissão do passaporte",
120
- type: "input",
121
- dataType: EDataType.DATE,
122
- name: "passportIssueDate",
123
- conditions: [
124
- {
125
- type: "form",
126
- elements: [
127
- {
128
- key: "country",
129
- value: "brazilian",
130
- comparisonOperator: "!==",
131
- }
132
- ]
133
- },
134
- ],
135
- },
136
- {
137
- label: "Data de validade do passaporte",
138
- type: "input",
139
- dataType: EDataType.DATE,
140
- name: "passportExpiryDate",
141
- conditions: [
142
- {
143
- type: "form",
144
- elements: [
145
- {
146
- key: "country",
147
- value: "brazilian",
148
- comparisonOperator: "!==",
149
- }
150
- ]
151
- },
152
- ],
153
- },
154
- {
155
- label: "Nome completo",
156
- type: "input",
157
- dataType: EDataType.TEXT,
158
- name: "name",
159
- isRequired: true,
160
- },
161
- {
162
- label: "Gênero",
163
- type: "select",
164
- dataType: EDataType.TEXT,
165
- name: "gender",
166
- options: [
167
- { label: "Masculino", value: "m" },
168
- { label: "Feminino", value: "f" },
169
- { label: "Outro", value: "o" },
170
- ],
171
- },
172
- {
173
- label: "Data de nascimento",
174
- type: "input",
175
- dataType: EDataType.DATE,
176
- name: "birthday",
177
- },
178
- {
179
- label: "Foto da pessoa",
180
- type: "file",
181
- dataType: EDataType.TEXT,
182
- storageConfig: {
183
- fileNameStrategy: "uuid",
184
- path: "person/pictures",
185
- visibility: "public",
186
- },
187
- name: "picture",
188
- },
189
- {
190
- label: "Telefone principal",
191
- type: "input",
192
- dataType: EDataType.TEXT,
193
- name: "phoneOne",
194
- validators: ["phone"],
195
- isRequired: true,
196
- },
197
- {
198
- label: "E-mail principal",
199
- type: "input",
200
- dataType: EDataType.EMAIL,
201
- name: "emailOne",
202
- isRequired: true,
203
- },
204
- // {
205
- // label: "Relacionamentos",
206
- // type: "select",
207
- // dataType: EDataType.TEXT,
208
- // name: "relationships",
209
- // options: [
210
- // {
211
- // label: "Cliente",
212
- // value: "customer",
213
- // },
214
- // {
215
- // label: "Fornecedor",
216
- // value: "supplier",
217
- // },
218
- // ],
219
- // isMultiple: true,
220
- // },
221
- ],
222
- },
223
- {
224
- id: "personAddressTab",
225
- title: "Endereços",
226
- elements: [
227
- {
228
- type: "fieldset",
229
- id: "addressOne",
230
- title: "Endereço 1",
231
- elements: [
232
- {
233
- label: "CEP",
234
- type: "input",
235
- dataType: EDataType.TEXT,
236
- name: "addressOneZipCode",
237
- apiRequest: {
238
- endpoint: "https://brasilapi.com.br/api/cep/v1/",
239
- paramType: "path",
240
- formFieldsFilledByApiResponse: [
241
- {
242
- formFieldName: "addressOneStreet",
243
- propertiesFromApiToFillFormField: ["street"]
244
- },
245
- {
246
- formFieldName: "addressOneDistrict",
247
- propertiesFromApiToFillFormField: ["neighborhood"]
248
- },
249
- {
250
- formFieldName: "addressOneCity",
251
- propertiesFromApiToFillFormField: ["city"]
252
- },
253
- {
254
- formFieldName: "addressOneState",
255
- propertiesFromApiToFillFormField: ["state"]
256
- },
257
- ],
258
- },
259
- validators: ["cep"],
260
- },
261
- {
262
- label: "Logradouro",
263
- type: "input",
264
- dataType: EDataType.TEXT,
265
- name: "addressOneStreet",
266
- },
267
- {
268
- label: "Bairro",
269
- type: "input",
270
- dataType: EDataType.TEXT,
271
- name: "addressOneDistrict",
272
- },
273
- {
274
- label: "Número",
275
- type: "input",
276
- dataType: EDataType.TEXT,
277
- name: "addressOneNumber",
278
- },
279
- {
280
- label: "Complemento",
281
- type: "input",
282
- dataType: EDataType.TEXT,
283
- name: "addressOneComplement",
284
- }, {
285
- label: "Cidade",
286
- type: "input",
287
- dataType: EDataType.TEXT,
288
- name: "addressOneCity",
289
- },
290
- {
291
- label: "Estado",
292
- type: "input",
293
- dataType: EDataType.TEXT,
294
- name: "addressOneState",
295
- },
296
- {
297
- label: "Latitude",
298
- type: "input",
299
- dataType: EDataType.TEXT,
300
- name: "addressOneLatitude",
301
- },
302
- {
303
- label: "Longitude",
304
- type: "input",
305
- dataType: EDataType.TEXT,
306
- name: "addressOneLongitude",
307
- }
308
- ],
309
- },
310
- {
311
- title: "Endereço 2",
312
- type: "fieldset",
313
- id: "addressTwo",
314
- elements: [
315
- {
316
- label: "CEP",
317
- type: "input",
318
- dataType: EDataType.TEXT,
319
- name: "addressTwoZipCode",
320
- apiRequest: {
321
- endpoint: "https://brasilapi.com.br/api/cep/v1/",
322
- paramType: "path",
323
- formFieldsFilledByApiResponse: [
324
- {
325
- formFieldName: "addressTwoStreet",
326
- propertiesFromApiToFillFormField: ["street"]
327
- },
328
- {
329
- formFieldName: "addressTwoDistrict",
330
- propertiesFromApiToFillFormField: ["neighborhood"]
331
- },
332
- {
333
- formFieldName: "addressTwoCity",
334
- propertiesFromApiToFillFormField: ["city"]
335
- },
336
- {
337
- formFieldName: "addressTwoState",
338
- propertiesFromApiToFillFormField: ["state"]
339
- },
340
- ],
341
- },
342
- validators: ["cep"],
343
- },
344
- {
345
- label: "Logradouro",
346
- type: "input",
347
- dataType: EDataType.TEXT,
348
- name: "addressTwoStreet",
349
- },
350
- {
351
- label: "Bairro",
352
- type: "input",
353
- dataType: EDataType.TEXT,
354
- name: "addressTwoDistrict",
355
- },
356
- {
357
- label: "Número",
358
- type: "input",
359
- dataType: EDataType.TEXT,
360
- name: "addressTwoNumber",
361
- },
362
- {
363
- label: "Complemento",
364
- type: "input",
365
- dataType: EDataType.TEXT,
366
- name: "addressTwoComplement",
367
- }, {
368
- label: "Cidade",
369
- type: "input",
370
- dataType: EDataType.TEXT,
371
- name: "addressTwoCity",
372
- },
373
- {
374
- label: "Estado",
375
- type: "input",
376
- dataType: EDataType.TEXT,
377
- name: "addressTwoState",
378
- },
379
- {
380
- label: "Latitude",
381
- type: "input",
382
- dataType: EDataType.TEXT,
383
- name: "addressTwoLatitude",
384
- },
385
- {
386
- label: "Longitude",
387
- type: "input",
388
- dataType: EDataType.TEXT,
389
- name: "addressTwoLongitude",
390
- }
391
- ],
392
- },
393
- ],
394
- },
395
- {
396
- id: "personContactTab",
397
- title: "Contatos e redes",
398
- elements: [
399
- {
400
- label: "Telefone secundário",
401
- type: "input",
402
- dataType: EDataType.TEXT,
403
- name: "phoneTwo",
404
- validators: ["phone"],
405
- },
406
- {
407
- label: "E-mail secundário",
408
- type: "input",
409
- dataType: EDataType.EMAIL,
410
- name: "emailTwo",
411
- },
412
- {
413
- label: "Site 1",
414
- type: "input",
415
- dataType: EDataType.TEXT,
416
- name: "siteOne",
417
- },
418
- {
419
- label: "Site 2",
420
- type: "input",
421
- dataType: EDataType.TEXT,
422
- name: "siteTwo",
423
- },
424
- {
425
- label: "Linkedin",
426
- type: "input",
427
- dataType: EDataType.TEXT,
428
- name: "linkedin",
429
- },
430
- {
431
- label: "Instagram",
432
- type: "input",
433
- dataType: EDataType.TEXT,
434
- name: "instagram",
435
- },
436
- {
437
- label: "Facebook",
438
- type: "input",
439
- dataType: EDataType.TEXT,
440
- name: "facebook",
441
- },
442
- ],
443
- },
444
- {
445
- id: "moreDetailsTab",
446
- title: "Outros dados",
447
- elements: [
448
- {
449
- label: "Nome social",
450
- type: "input",
451
- dataType: EDataType.TEXT,
452
- name: "nickname",
453
- },
454
- {
455
- label: "Descrição da pessoa",
456
- type: "input",
457
- dataType: EDataType.WYSIWYG,
458
- name: "personDescription",
459
- },
460
- {
461
- label: "Estado civil",
462
- type: "select",
463
- dataType: EDataType.TEXT,
464
- name: "personMaritalStatus",
465
- options: [
466
- { label: "Solteiro", value: "single" },
467
- { label: "Casado", value: "married" },
468
- { label: "Divorciado", value: "divorced" },
469
- { label: "Viúvo", value: "widower" },
470
- { label: "Noivo", value: "engaged" },
471
- { label: "União estável", value: "stableUnion" },
472
- ],
473
- },
474
- ],
475
- },
476
- ],
477
- }
478
- ],
479
- };
@@ -1,13 +0,0 @@
1
- import type { IModule } from "../../interfaces/project.interface";
2
- import { companyForm } from "../components/forms/company.form";
3
- import { companyList } from "../components/lists/company.list";
4
-
5
- export const companyModule: IModule = {
6
- title: "Empresa",
7
- id: "companyModule",
8
- icon: "store",
9
- components: [
10
- companyForm,
11
- companyList,
12
- ]
13
- };
@@ -1,13 +0,0 @@
1
- import type { IModule } from "../../interfaces/project.interface";
2
- import { customerForm } from "../components/forms/customer.form";
3
- import { customerList } from "../components/lists/customer.list";
4
-
5
- export const customerModule: IModule = {
6
- title: "Cliente",
7
- id: "customerModule",
8
- icon: "UserIcon",
9
- components: [
10
- customerForm,
11
- customerList,
12
- ]
13
- }
@@ -1,13 +0,0 @@
1
- import type { IModule } from "../../interfaces/project.interface";
2
- import { personForm } from "../components/forms/person.form";
3
- import { personList } from "../components/lists/person.list";
4
-
5
- export const personModule: IModule = {
6
- title: "Pessoa",
7
- id: "personModule",
8
- icon: "person",
9
- components: [
10
- personForm,
11
- personList,
12
- ]
13
- };