rapida-partner 1.0.0 → 1.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.
Files changed (41) hide show
  1. package/README.md +4 -1
  2. package/package.json +2 -2
  3. package/rapidaObject.json +1 -3024
  4. package/src/enums/form-contract.enum.ts +30 -0
  5. package/src/enums/form.enum.ts +31 -0
  6. package/src/examples/components/forms/character.form.ts +12 -10
  7. package/src/examples/components/forms/company.form.ts +83 -76
  8. package/src/examples/components/forms/movie.form.ts +53 -21
  9. package/src/examples/components/forms/movieGenre.form.ts +6 -4
  10. package/src/examples/components/forms/person.form.ts +81 -79
  11. package/src/examples/modules/movie.ts +2 -1
  12. package/src/examples/projects/movieBackoffice.ts +1 -1
  13. package/src/interfaces/data-card.interface.ts +2 -30
  14. package/src/interfaces/data-detail.interface.ts +2 -30
  15. package/src/interfaces/form-autocomplete.interface.ts +2 -30
  16. package/src/interfaces/form-file.interface.ts +2 -30
  17. package/src/interfaces/form-input.interface.ts +2 -30
  18. package/src/interfaces/form-select.interface.ts +2 -30
  19. package/src/interfaces/form.interface.ts +22 -33
  20. package/src/schemas/backend-framework-structure.schema.json +2 -2
  21. package/src/schemas/bdd-and-e2e-narratives.ref.json +39 -49
  22. package/src/schemas/bdd-and-e2e.json +30 -33
  23. package/src/schemas/business-plan.ref.json +23 -23
  24. package/src/schemas/business-rules.ref.json +25 -25
  25. package/src/schemas/component-one-of.ref.json +1 -1
  26. package/src/schemas/data-card.ref.json +2 -28
  27. package/src/schemas/data-detail.ref.json +2 -30
  28. package/src/schemas/form-autocomplete.ref.json +1 -29
  29. package/src/schemas/form-contract-request-array.ref.json +25 -0
  30. package/src/schemas/form-contract-request-one-of.ref.json +11 -0
  31. package/src/schemas/form-contract-request.ref.json +42 -0
  32. package/src/schemas/form-file.ref.json +1 -31
  33. package/src/schemas/form-input.ref.json +1 -31
  34. package/src/schemas/form-select.ref.json +1 -29
  35. package/src/schemas/form.ref.json +44 -40
  36. package/src/schemas/frontend-framework-structure.schema.json +1 -5
  37. package/src/schemas/module.ref.json +1 -1
  38. package/src/schemas/project.schema.json +8 -4
  39. package/src/schemas/todo.ref.json +1 -1
  40. package/src/schemas/types-datatype.ref.json +34 -0
  41. package/src/schemas/external-application.ref.json +0 -97
@@ -0,0 +1,30 @@
1
+ export enum EFormContractDataType {
2
+ TEXT = "text",
3
+ NUMBER = "number",
4
+ PASSWORD = "password",
5
+ EMAIL = "email",
6
+ COLOR = "color",
7
+ DATE = "date",
8
+ WYSIWYG = "wysiwyg",
9
+ TIME = "time",
10
+ FILE = "file",
11
+ CHAR = "char",
12
+ NCHAR = "nchar",
13
+ VARCHAR = "varchar",
14
+ VARCHAR2 = "varchar2",
15
+ NVARCHAR = "nvarchar",
16
+ LONGTEXT = "longtext",
17
+ CLOB = "clob",
18
+ NCLOB = "nclob",
19
+ DECIMAL = "decimal",
20
+ NUMERIC = "numeric",
21
+ INTEGER = "integer",
22
+ FLOAT = "float",
23
+ DOUBLE = "double",
24
+ REAL = "real",
25
+ TIMESTAMP = "timestamp",
26
+ DATETIME = "datetime",
27
+ DATETIME2 = "datetime2",
28
+ UNIQUEIDENTIFIER = "uniqueidentifier",
29
+ BOOLEAN = "boolean",
30
+ }
@@ -0,0 +1,31 @@
1
+ export enum EDataType {
2
+ TEXT = "text",
3
+ NUMBER = "number",
4
+ PASSWORD = "password",
5
+ EMAIL = "email",
6
+ COLOR = "color",
7
+ DATE = "date",
8
+ WYSIWYG = "wysiwyg",
9
+ TIME = "time",
10
+ FILE = "file",
11
+ ARRAY = "array",
12
+ CHAR = "char",
13
+ NCHAR = "nchar",
14
+ VARCHAR = "varchar",
15
+ VARCHAR2 = "varchar2",
16
+ NVARCHAR = "nvarchar",
17
+ LONGTEXT = "longtext",
18
+ CLOB = "clob",
19
+ NCLOB = "nclob",
20
+ DECIMAL = "decimal",
21
+ NUMERIC = "numeric",
22
+ INTEGER = "integer",
23
+ FLOAT = "float",
24
+ DOUBLE = "double",
25
+ REAL = "real",
26
+ TIMESTAMP = "timestamp",
27
+ DATETIME = "datetime",
28
+ DATETIME2 = "datetime2",
29
+ UNIQUEIDENTIFIER = "uniqueidentifier",
30
+ BOOLEAN = "boolean",
31
+ }
@@ -1,3 +1,5 @@
1
+ import { EFormContractDataType } from "../../../enums/form-contract.enum";
2
+ import { EDataType } from "../../../enums/form.enum";
1
3
  import type { IForm } from "../../../interfaces/form.interface";
2
4
 
3
5
  export const characterForm: IForm = {
@@ -13,23 +15,23 @@ export const characterForm: IForm = {
13
15
  body: [
14
16
  {
15
17
  name: "characterName",
16
- dataType: "text",
18
+ dataType: EFormContractDataType.TEXT,
17
19
  },
18
20
  {
19
21
  name: "characterImage",
20
- dataType: "text",
22
+ dataType: EFormContractDataType.TEXT,
21
23
  },
22
24
  {
23
25
  name: "characterDescription",
24
- dataType: "wysiwyg",
26
+ dataType: EFormContractDataType.WYSIWYG,
25
27
  },
26
28
  {
27
29
  name: "characterType",
28
- dataType: "text",
30
+ dataType: EFormContractDataType.TEXT,
29
31
  },
30
32
  {
31
33
  name: "characterGender",
32
- dataType: "text",
34
+ dataType: EFormContractDataType.TEXT,
33
35
  },
34
36
  ],
35
37
  },
@@ -39,7 +41,7 @@ export const characterForm: IForm = {
39
41
  elements: [
40
42
  {
41
43
  type: "input",
42
- dataType: "text",
44
+ dataType: EDataType.TEXT,
43
45
  label: "Nome do personagem",
44
46
  name: "characterName",
45
47
  isRequired: true,
@@ -48,7 +50,7 @@ export const characterForm: IForm = {
48
50
  {
49
51
  label: "Foto do personagem",
50
52
  type: "file",
51
- dataType: "text",
53
+ dataType: EDataType.TEXT,
52
54
  name: "characterImage",
53
55
  storageConfig: {
54
56
  fileNameStrategy: "uuid",
@@ -58,7 +60,7 @@ export const characterForm: IForm = {
58
60
  },
59
61
  {
60
62
  type: "input",
61
- dataType: "wysiwyg",
63
+ dataType: EDataType.WYSIWYG,
62
64
  label: "Descrição do personagem",
63
65
  name: "characterDescription",
64
66
  },
@@ -66,7 +68,7 @@ export const characterForm: IForm = {
66
68
  type: "select",
67
69
  label: "Tipo de personagem",
68
70
  name: "characterType",
69
- dataType: "text",
71
+ dataType: EDataType.TEXT,
70
72
  options: [
71
73
  { value: "protagonist", label: "Protagonista" },
72
74
  { value: "antagonist", label: "Antagonista" },
@@ -80,7 +82,7 @@ export const characterForm: IForm = {
80
82
  type: "select",
81
83
  label: "Gênero do personagem",
82
84
  name: "characterGender",
83
- dataType: "text",
85
+ dataType: EDataType.TEXT,
84
86
  options: [
85
87
  { value: "male", label: "Masculino" },
86
88
  { value: "female", label: "Feminino" },
@@ -1,4 +1,6 @@
1
1
  import { COUNTRIES_FROM_EARTH } from "../../../constants/options/countriesFromEarth";
2
+ import { EFormContractDataType } from "../../../enums/form-contract.enum";
3
+ import { EDataType } from "../../../enums/form.enum";
2
4
  import type { IForm } from "../../../interfaces/form.interface";
3
5
 
4
6
  export const companyForm: IForm = {
@@ -11,44 +13,49 @@ export const companyForm: IForm = {
11
13
  methods: [{ verb: "POST" }, { verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }],
12
14
  request: {
13
15
  body: [
14
- {name: "country", dataType: "text"},
15
- {name: "cnpj", dataType: "text"},
16
- {name: "name", dataType: "text"},
17
- {name: "businessName", dataType: "text"},
18
- {name: "birthday", dataType: "date"},
19
- {name: "legalNature", dataType: "text"},
20
- {name: "stateRegistration", dataType: "text"},
21
- {name: "municipalRegistration", dataType: "text"},
22
- {name: "description", dataType: "text"},
23
- {name: "logo", dataType: "text"},
24
- {name: "partners", dataType: "array"},
25
- {name: "phoneOne", dataType: "text"},
26
- {name: "emailOne", dataType: "text"},
27
- {name: "addressOneZipCode", dataType: "text"},
28
- {name: "addressOneStreet", dataType: "text"},
29
- {name: "addressOneDistrict", dataType: "text"},
30
- {name: "addressOneNumber", dataType: "text"},
31
- {name: "addressOneComplement", dataType: "text"},
32
- {name: "addressOneCity", dataType: "text"},
33
- {name: "addressOneState", dataType: "text"},
34
- {name: "addressOneLatitude", dataType: "text"},
35
- {name: "addressOneLongitude", dataType: "text"},
36
- {name: "addressTwoZipCode", dataType: "text"},
37
- {name: "addressTwoStreet", dataType: "text"},
38
- {name: "addressTwoDistrict", dataType: "text"},
39
- {name: "addressTwoNumber", dataType: "text"},
40
- {name: "addressTwoComplement", dataType: "text"},
41
- {name: "addressTwoCity", dataType: "text"},
42
- {name: "addressTwoState", dataType: "text"},
43
- {name: "addressTwoLatitude", dataType: "text"},
44
- {name: "addressTwoLongitude", dataType: "text"},
45
- {name: "phoneTwo", dataType: "text"},
46
- {name: "emailTwo", dataType: "text"},
47
- {name: "siteOne", dataType: "text"},
48
- {name: "siteTwo", dataType: "text"},
49
- {name: "linkedin", dataType: "text"},
50
- {name: "instagram", dataType: "text"},
51
- {name: "facebook", dataType: "text"},
16
+ {name: "country", dataType: EFormContractDataType.TEXT },
17
+ {name: "cnpj", dataType: EFormContractDataType.TEXT },
18
+ {name: "name", dataType: EFormContractDataType.TEXT },
19
+ {name: "businessName", dataType: EFormContractDataType.TEXT },
20
+ {name: "birthday", dataType: EFormContractDataType.DATE },
21
+ {name: "legalNature", dataType: EFormContractDataType.TEXT },
22
+ {name: "stateRegistration", dataType: EFormContractDataType.TEXT },
23
+ {name: "municipalRegistration", dataType: EFormContractDataType.TEXT },
24
+ {name: "description", dataType: EFormContractDataType.TEXT },
25
+ {name: "logo", dataType: EFormContractDataType.TEXT },
26
+ {name: "partners", dataType: "array", elements: [
27
+ {
28
+ name: "partnerId",
29
+ dataType: EFormContractDataType.TEXT,
30
+ },
31
+ ]},
32
+ {name: "phoneOne", dataType: EFormContractDataType.TEXT },
33
+ {name: "emailOne", dataType: EFormContractDataType.TEXT },
34
+ {name: "addressOneZipCode", dataType: EFormContractDataType.TEXT },
35
+ {name: "addressOneStreet", dataType: EFormContractDataType.TEXT },
36
+ {name: "addressOneDistrict", dataType: EFormContractDataType.TEXT },
37
+ {name: "addressOneNumber", dataType: EFormContractDataType.TEXT },
38
+ {name: "addressOneComplement", dataType: EFormContractDataType.TEXT },
39
+ {name: "addressOneCity", dataType: EFormContractDataType.TEXT },
40
+ {name: "addressOneState", dataType: EFormContractDataType.TEXT },
41
+ {name: "addressOneLatitude", dataType: EFormContractDataType.TEXT },
42
+ {name: "addressOneLongitude", dataType: EFormContractDataType.TEXT },
43
+ {name: "addressTwoZipCode", dataType: EFormContractDataType.TEXT },
44
+ {name: "addressTwoStreet", dataType: EFormContractDataType.TEXT },
45
+ {name: "addressTwoDistrict", dataType: EFormContractDataType.TEXT },
46
+ {name: "addressTwoNumber", dataType: EFormContractDataType.TEXT },
47
+ {name: "addressTwoComplement", dataType: EFormContractDataType.TEXT },
48
+ {name: "addressTwoCity", dataType: EFormContractDataType.TEXT },
49
+ {name: "addressTwoState", dataType: EFormContractDataType.TEXT },
50
+ {name: "addressTwoLatitude", dataType: EFormContractDataType.TEXT },
51
+ {name: "addressTwoLongitude", dataType: EFormContractDataType.TEXT },
52
+ {name: "phoneTwo", dataType: EFormContractDataType.TEXT },
53
+ {name: "emailTwo", dataType: EFormContractDataType.TEXT },
54
+ {name: "siteOne", dataType: EFormContractDataType.TEXT },
55
+ {name: "siteTwo", dataType: EFormContractDataType.TEXT },
56
+ {name: "linkedin", dataType: EFormContractDataType.TEXT },
57
+ {name: "instagram", dataType: EFormContractDataType.TEXT },
58
+ {name: "facebook", dataType: EFormContractDataType.TEXT },
52
59
  ]
53
60
  }
54
61
  }],
@@ -66,14 +73,14 @@ export const companyForm: IForm = {
66
73
  label: "Nacionalidade",
67
74
  type: "select",
68
75
  name: "country",
69
- dataType: "text",
76
+ dataType: EDataType.TEXT,
70
77
  options: COUNTRIES_FROM_EARTH.map(country => ({ label: country.brazilianPortugueseName, value: country.englishNameAsValue })),
71
78
  isRequired: true,
72
79
  },
73
80
  {
74
81
  label: "CNPJ",
75
82
  type: "input",
76
- dataType: "text",
83
+ dataType: EDataType.TEXT,
77
84
  name: "cnpj",
78
85
  maskRegex: "^\\d{2}\\.\\d{3}\\.\\d{3}/\\d{4}-\\d{2}$",
79
86
  isUnique: true,
@@ -93,26 +100,26 @@ export const companyForm: IForm = {
93
100
  {
94
101
  label: "Razão social",
95
102
  type: "input",
96
- dataType: "text",
103
+ dataType: EDataType.TEXT,
97
104
  name: "name",
98
105
  isRequired: true,
99
106
  },
100
107
  {
101
108
  label: "Nome fantasia",
102
109
  type: "input",
103
- dataType: "text",
110
+ dataType: EDataType.TEXT,
104
111
  name: "businessName",
105
112
  },
106
113
  {
107
114
  type: "input",
108
- dataType: "date",
115
+ dataType: EDataType.DATE,
109
116
  label: "Data de abertura",
110
117
  name: "birthday",
111
118
  },
112
119
  {
113
120
  label: "Natureza legal",
114
121
  type: "select",
115
- dataType: "text",
122
+ dataType: EDataType.TEXT,
116
123
  name: "legalNature",
117
124
  options: [
118
125
  { label: "Empresa Pública", value: "201-1" },
@@ -334,7 +341,7 @@ export const companyForm: IForm = {
334
341
  {
335
342
  label: "Inscrição estadual",
336
343
  type: "input",
337
- dataType: "text",
344
+ dataType: EDataType.TEXT,
338
345
  name: "stateRegistration",
339
346
  conditions: [
340
347
  {
@@ -354,7 +361,7 @@ export const companyForm: IForm = {
354
361
  {
355
362
  type: "input",
356
363
  label: "Inscrição municipal",
357
- dataType: "text",
364
+ dataType: EDataType.TEXT,
358
365
  name: "municipalRegistration",
359
366
  conditions: [
360
367
  {
@@ -371,14 +378,14 @@ export const companyForm: IForm = {
371
378
  },
372
379
  {
373
380
  type: "input",
374
- dataType: "wysiwyg",
381
+ dataType: EDataType.WYSIWYG,
375
382
  label: "Descrição da empresa",
376
383
  name: "description",
377
384
  },
378
385
  {
379
386
  label: "Logo da empresa",
380
387
  type: "file",
381
- dataType: "text",
388
+ dataType: EDataType.TEXT,
382
389
  name: "logo",
383
390
  storageConfig: {
384
391
  fileNameStrategy: "uuid",
@@ -389,7 +396,7 @@ export const companyForm: IForm = {
389
396
  {
390
397
  label: "Sócios",
391
398
  type: "autocomplete",
392
- dataType: "text",
399
+ dataType: EDataType.TEXT,
393
400
  tooltip:
394
401
  "O(s) sócio(s) deve(m) estar cadastrado(s) no gerenciamento de pessoas.",
395
402
  name: "partners",
@@ -405,7 +412,7 @@ export const companyForm: IForm = {
405
412
  {
406
413
  label: "Telefone principal",
407
414
  type: "input",
408
- dataType: "text",
415
+ dataType: EDataType.TEXT,
409
416
  name: "phoneOne",
410
417
  maskRegex: "^\\(\\d{2}\\) \\d{4,5}-\\d{4}$",
411
418
  isRequired: true,
@@ -413,7 +420,7 @@ export const companyForm: IForm = {
413
420
  {
414
421
  label: "E-mail principal",
415
422
  type: "input",
416
- dataType: "email",
423
+ dataType: EDataType.EMAIL,
417
424
  name: "emailOne",
418
425
  isRequired: true,
419
426
  },
@@ -431,7 +438,7 @@ export const companyForm: IForm = {
431
438
  {
432
439
  label: "CEP",
433
440
  type: "input",
434
- dataType: "text",
441
+ dataType: EDataType.TEXT,
435
442
  name: "addressOneZipCode",
436
443
  apiRequest: {
437
444
  endpoint: "https://brasilapi.com.br/api/cep/v1/",
@@ -460,49 +467,49 @@ export const companyForm: IForm = {
460
467
  {
461
468
  label: "Logradouro",
462
469
  type: "input",
463
- dataType: "text",
470
+ dataType: EDataType.TEXT,
464
471
  name: "addressOneStreet",
465
472
  },
466
473
  {
467
474
  label: "Bairro",
468
475
  type: "input",
469
- dataType: "text",
476
+ dataType: EDataType.TEXT,
470
477
  name: "addressOneDistrict",
471
478
  },
472
479
  {
473
480
  label: "Número",
474
481
  type: "input",
475
- dataType: "text",
482
+ dataType: EDataType.TEXT,
476
483
  name: "addressOneNumber",
477
484
  },
478
485
  {
479
486
  label: "Complemento",
480
487
  type: "input",
481
- dataType: "text",
488
+ dataType: EDataType.TEXT,
482
489
  name: "addressOneComplement",
483
490
  },
484
491
  {
485
492
  label: "Cidade",
486
493
  type: "input",
487
- dataType: "text",
494
+ dataType: EDataType.TEXT,
488
495
  name: "addressOneCity",
489
496
  },
490
497
  {
491
498
  label: "Estado",
492
499
  type: "input",
493
- dataType: "text",
500
+ dataType: EDataType.TEXT,
494
501
  name: "addressOneState",
495
502
  },
496
503
  {
497
504
  label: "Latitude",
498
505
  type: "input",
499
- dataType: "text",
506
+ dataType: EDataType.TEXT,
500
507
  name: "addressOneLatitude",
501
508
  },
502
509
  {
503
510
  label: "Longitude",
504
511
  type: "input",
505
- dataType: "text",
512
+ dataType: EDataType.TEXT,
506
513
  name: "addressOneLongitude",
507
514
  },
508
515
  ],
@@ -515,7 +522,7 @@ export const companyForm: IForm = {
515
522
  {
516
523
  label: "CEP",
517
524
  type: "input",
518
- dataType: "text",
525
+ dataType: EDataType.TEXT,
519
526
  name: "addressTwoZipCode",
520
527
  apiRequest: {
521
528
  endpoint: "https://brasilapi.com.br/api/cep/v1/",
@@ -544,49 +551,49 @@ export const companyForm: IForm = {
544
551
  {
545
552
  label: "Logradouro",
546
553
  type: "input",
547
- dataType: "text",
554
+ dataType: EDataType.TEXT,
548
555
  name: "addressTwoStreet",
549
556
  },
550
557
  {
551
558
  label: "Bairro",
552
559
  type: "input",
553
- dataType: "text",
560
+ dataType: EDataType.TEXT,
554
561
  name: "addressTwoDistrict",
555
562
  },
556
563
  {
557
564
  label: "Número",
558
565
  type: "input",
559
- dataType: "text",
566
+ dataType: EDataType.TEXT,
560
567
  name: "addressTwoNumber",
561
568
  },
562
569
  {
563
570
  label: "Complemento",
564
571
  type: "input",
565
- dataType: "text",
572
+ dataType: EDataType.TEXT,
566
573
  name: "addressTwoComplement",
567
574
  },
568
575
  {
569
576
  label: "Cidade",
570
577
  type: "input",
571
- dataType: "text",
578
+ dataType: EDataType.TEXT,
572
579
  name: "addressTwoCity",
573
580
  },
574
581
  {
575
582
  label: "Estado",
576
583
  type: "input",
577
- dataType: "text",
584
+ dataType: EDataType.TEXT,
578
585
  name: "addressTwoState",
579
586
  },
580
587
  {
581
588
  label: "Latitude",
582
589
  type: "input",
583
- dataType: "text",
590
+ dataType: EDataType.TEXT,
584
591
  name: "addressTwoLatitude",
585
592
  },
586
593
  {
587
594
  label: "Longitude",
588
595
  type: "input",
589
- dataType: "text",
596
+ dataType: EDataType.TEXT,
590
597
  name: "addressTwoLongitude",
591
598
  },
592
599
  ],
@@ -600,44 +607,44 @@ export const companyForm: IForm = {
600
607
  {
601
608
  label: "Telefone secundário",
602
609
  type: "input",
603
- dataType: "text",
610
+ dataType: EDataType.TEXT,
604
611
  name: "phoneTwo",
605
612
  validators: ["phone"],
606
613
  },
607
614
  {
608
615
  label: "E-mail secundário",
609
616
  type: "input",
610
- dataType: "email",
617
+ dataType: EDataType.EMAIL,
611
618
  name: "emailTwo",
612
619
  },
613
620
  {
614
621
  label: "Site 1",
615
622
  type: "input",
616
- dataType: "text",
623
+ dataType: EDataType.TEXT,
617
624
  name: "siteOne",
618
625
  },
619
626
  {
620
627
  label: "Site 2",
621
628
  type: "input",
622
- dataType: "text",
629
+ dataType: EDataType.TEXT,
623
630
  name: "siteTwo",
624
631
  },
625
632
  {
626
633
  label: "Linkedin",
627
634
  type: "input",
628
- dataType: "text",
635
+ dataType: EDataType.TEXT,
629
636
  name: "linkedin",
630
637
  },
631
638
  {
632
639
  label: "Instagram",
633
640
  type: "input",
634
- dataType: "text",
641
+ dataType: EDataType.TEXT,
635
642
  name: "instagram",
636
643
  },
637
644
  {
638
645
  label: "Facebook",
639
646
  type: "input",
640
- dataType: "text",
647
+ dataType: EDataType.TEXT,
641
648
  name: "facebook",
642
649
  },
643
650
  ],