rapida-partner 1.3.0 → 1.4.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/rapidaObject.json +1 -1
- package/src/enums/form-contract.enum.ts +1 -0
- package/src/examples/components/forms/character.form.ts +7 -7
- package/src/examples/components/forms/company.form.ts +40 -40
- package/src/examples/components/forms/customer.form.ts +23 -11
- package/src/examples/components/forms/movie.form.ts +11 -11
- package/src/examples/components/forms/movieEpisode.form.ts +7 -7
- package/src/examples/components/forms/movieGenre.form.ts +3 -3
- package/src/examples/components/forms/person.form.ts +41 -41
- package/src/interfaces/form.interface.ts +24 -14
- package/src/schemas/form.ref.json +37 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
1
|
import { EDataType } from "../../../enums/form.enum";
|
|
3
2
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
3
|
|
|
@@ -9,18 +8,19 @@ export const characterForm: IForm = {
|
|
|
9
8
|
id: "characterForm",
|
|
10
9
|
contracts: [
|
|
11
10
|
{
|
|
11
|
+
id: "characters",
|
|
12
12
|
endpoint: "/characters",
|
|
13
13
|
actions: ["create", "get", "getById", "update", "delete"],
|
|
14
14
|
request: {
|
|
15
15
|
entity: "Character",
|
|
16
16
|
description: "Represents a character in a story or narrative.",
|
|
17
17
|
fields: [
|
|
18
|
-
{ name: "_id", dataType:
|
|
19
|
-
{ name: "characterName", dataType:
|
|
20
|
-
{ name: "characterImage", dataType:
|
|
21
|
-
{ name: "characterDescription", dataType:
|
|
22
|
-
{ name: "characterType", dataType:
|
|
23
|
-
{ name: "characterGender", dataType:
|
|
18
|
+
{ name: "_id", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
19
|
+
{ name: "characterName", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "characterImage", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
21
|
+
{ name: "characterDescription", dataType: EDataType.LONGTEXT, isRequired: false },
|
|
22
|
+
{ name: "characterType", dataType: EDataType.NVARCHAR, enum: ["protagonist", "antagonist", "hero", "villain", "sidekick", "supporting"], isRequired: false },
|
|
23
|
+
{ name: "characterGender", dataType: EDataType.NVARCHAR, enum: ["male", "female", "other"], isRequired: false },
|
|
24
24
|
],
|
|
25
25
|
},
|
|
26
26
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { COUNTRIES_FROM_EARTH } from "../../../constants/options/countriesFromEarth";
|
|
2
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
3
2
|
import { EDataType } from "../../../enums/form.enum";
|
|
4
3
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
5
4
|
|
|
@@ -9,55 +8,56 @@ export const companyForm: IForm = {
|
|
|
9
8
|
componentType: "form",
|
|
10
9
|
id: "companyForm",
|
|
11
10
|
contracts: [{
|
|
11
|
+
id: "companies",
|
|
12
12
|
endpoint: "/companies",
|
|
13
13
|
actions: ["create", "get", "getById", "update", "delete"],
|
|
14
14
|
request: {
|
|
15
15
|
entity: "Companies",
|
|
16
16
|
description: "Represents a company or business entity.",
|
|
17
17
|
fields: [
|
|
18
|
-
{ name: "_id", dataType:
|
|
19
|
-
{ name: "country", dataType:
|
|
20
|
-
{ name: "cnpj", dataType:
|
|
21
|
-
{ name: "name", dataType:
|
|
22
|
-
{ name: "businessName", dataType:
|
|
23
|
-
{ name: "birthday", dataType:
|
|
24
|
-
{ name: "legalNature", dataType:
|
|
25
|
-
{ name: "stateRegistration", dataType:
|
|
26
|
-
{ name: "municipalRegistration", dataType:
|
|
27
|
-
{ name: "description", dataType:
|
|
28
|
-
{ name: "logo", dataType:
|
|
29
|
-
{ name: "partners", dataType:
|
|
18
|
+
{ name: "_id", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
19
|
+
{ name: "country", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "cnpj", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
21
|
+
{ name: "name", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
22
|
+
{ name: "businessName", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
23
|
+
{ name: "birthday", dataType: EDataType.DATE, isRequired: false },
|
|
24
|
+
{ name: "legalNature", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
25
|
+
{ name: "stateRegistration", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
26
|
+
{ name: "municipalRegistration", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
27
|
+
{ name: "description", dataType: EDataType.LONGTEXT, isRequired: false },
|
|
28
|
+
{ name: "logo", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
29
|
+
{ name: "partners", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: false, foreignKey: {
|
|
30
30
|
entity: "People",
|
|
31
31
|
connectionAttribute: "_id",
|
|
32
32
|
relationship: "many-to-many"
|
|
33
33
|
} },
|
|
34
|
-
{ name: "phoneOne", dataType:
|
|
35
|
-
{ name: "emailOne", dataType:
|
|
36
|
-
{ name: "addressOneZipCode", dataType:
|
|
37
|
-
{ name: "addressOneStreet", dataType:
|
|
38
|
-
{ name: "addressOneDistrict", dataType:
|
|
39
|
-
{ name: "addressOneNumber", dataType:
|
|
40
|
-
{ name: "addressOneComplement", dataType:
|
|
41
|
-
{ name: "addressOneCity", dataType:
|
|
42
|
-
{ name: "addressOneState", dataType:
|
|
43
|
-
{ name: "addressOneLatitude", dataType:
|
|
44
|
-
{ name: "addressOneLongitude", dataType:
|
|
45
|
-
{ name: "addressTwoZipCode", dataType:
|
|
46
|
-
{ name: "addressTwoStreet", dataType:
|
|
47
|
-
{ name: "addressTwoDistrict", dataType:
|
|
48
|
-
{ name: "addressTwoNumber", dataType:
|
|
49
|
-
{ name: "addressTwoComplement", dataType:
|
|
50
|
-
{ name: "addressTwoCity", dataType:
|
|
51
|
-
{ name: "addressTwoState", dataType:
|
|
52
|
-
{ name: "addressTwoLatitude", dataType:
|
|
53
|
-
{ name: "addressTwoLongitude", dataType:
|
|
54
|
-
{ name: "phoneTwo", dataType:
|
|
55
|
-
{ name: "emailTwo", dataType:
|
|
56
|
-
{ name: "siteOne", dataType:
|
|
57
|
-
{ name: "siteTwo", dataType:
|
|
58
|
-
{ name: "linkedin", dataType:
|
|
59
|
-
{ name: "instagram", dataType:
|
|
60
|
-
{ name: "facebook", dataType:
|
|
34
|
+
{ name: "phoneOne", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
35
|
+
{ name: "emailOne", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
36
|
+
{ name: "addressOneZipCode", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
37
|
+
{ name: "addressOneStreet", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
38
|
+
{ name: "addressOneDistrict", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
39
|
+
{ name: "addressOneNumber", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
40
|
+
{ name: "addressOneComplement", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
41
|
+
{ name: "addressOneCity", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
42
|
+
{ name: "addressOneState", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
43
|
+
{ name: "addressOneLatitude", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
44
|
+
{ name: "addressOneLongitude", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
45
|
+
{ name: "addressTwoZipCode", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
46
|
+
{ name: "addressTwoStreet", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
47
|
+
{ name: "addressTwoDistrict", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
48
|
+
{ name: "addressTwoNumber", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
49
|
+
{ name: "addressTwoComplement", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
50
|
+
{ name: "addressTwoCity", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
51
|
+
{ name: "addressTwoState", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
52
|
+
{ name: "addressTwoLatitude", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
53
|
+
{ name: "addressTwoLongitude", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
54
|
+
{ name: "phoneTwo", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
55
|
+
{ name: "emailTwo", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
56
|
+
{ name: "siteOne", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
57
|
+
{ name: "siteTwo", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
58
|
+
{ name: "linkedin", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
59
|
+
{ name: "instagram", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
60
|
+
{ name: "facebook", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
61
61
|
]
|
|
62
62
|
}
|
|
63
63
|
}],
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
1
|
import { EDataType } from "../../../enums/form.enum";
|
|
3
2
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
3
|
import { companyForm } from "./company.form";
|
|
@@ -10,16 +9,20 @@ export const customerForm: IForm = {
|
|
|
10
9
|
componentType: "form",
|
|
11
10
|
contracts: [
|
|
12
11
|
{
|
|
12
|
+
id: "customerPeople",
|
|
13
13
|
endpoint: "/customers/people",
|
|
14
14
|
actions: ["create", "update", "get", "getById", "delete"],
|
|
15
15
|
request: {
|
|
16
16
|
entity: "Customers",
|
|
17
|
-
relatedEntity:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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: []
|
|
23
26
|
},
|
|
24
27
|
conditions: [
|
|
25
28
|
{
|
|
@@ -35,15 +38,24 @@ export const customerForm: IForm = {
|
|
|
35
38
|
]
|
|
36
39
|
},
|
|
37
40
|
{
|
|
41
|
+
id: "customerCompanies",
|
|
38
42
|
endpoint: "/customers/companies",
|
|
39
43
|
actions: ["create", "update", "get", "getById", "delete"],
|
|
40
44
|
request: {
|
|
41
45
|
entity: "Customers",
|
|
42
|
-
relatedEntity:
|
|
46
|
+
relatedEntity: {
|
|
47
|
+
entity: "Companies",
|
|
48
|
+
connectionAttribute: "_id",
|
|
49
|
+
fieldsFromEntity: [
|
|
50
|
+
{
|
|
51
|
+
fields: companyForm,
|
|
52
|
+
contractId: "companies"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
43
56
|
fields: [
|
|
44
|
-
|
|
45
|
-
{ name: "
|
|
46
|
-
{ name: "entityRelated", dataType: EFormContractDataType.NVARCHAR }
|
|
57
|
+
{ name: "entityId", dataType: EDataType.UNIQUEIDENTIFIER },
|
|
58
|
+
{ name: "entityRelated", dataType: EDataType.NVARCHAR }
|
|
47
59
|
]
|
|
48
60
|
},
|
|
49
61
|
conditions: [
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
1
|
import { EDataType } from "../../../enums/form.enum";
|
|
3
2
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
3
|
|
|
@@ -8,26 +7,27 @@ export const movieForm: IForm = {
|
|
|
8
7
|
componentType: "form",
|
|
9
8
|
contracts: [
|
|
10
9
|
{
|
|
10
|
+
id: "movies",
|
|
11
11
|
endpoint: "/movies",
|
|
12
12
|
actions: ["create", "update", "getById", "get", "delete"],
|
|
13
13
|
request: {
|
|
14
14
|
entity: "Movie",
|
|
15
15
|
description: "Represents a movie or TV series in the system.",
|
|
16
16
|
fields: [
|
|
17
|
-
{ name: "_id", dataType:
|
|
18
|
-
{ name: "pictureFile", dataType:
|
|
19
|
-
{ name: "name", dataType:
|
|
20
|
-
{ name: "description", dataType:
|
|
21
|
-
{ name: "releaseDate", dataType:
|
|
22
|
-
{ name: "imdbRating", dataType:
|
|
23
|
-
{ name: "movieGenres", dataType:
|
|
17
|
+
{ name: "_id", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
18
|
+
{ name: "pictureFile", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
19
|
+
{ name: "name", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "description", dataType: EDataType.LONGTEXT, isRequired: true },
|
|
21
|
+
{ name: "releaseDate", dataType: EDataType.DATE, isRequired: true },
|
|
22
|
+
{ name: "imdbRating", dataType: EDataType.DECIMAL, isRequired: true },
|
|
23
|
+
{ name: "movieGenres", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, foreignKey: {
|
|
24
24
|
entity: "MovieGenre",
|
|
25
25
|
connectionAttribute: "_id",
|
|
26
26
|
relationship: "many-to-many"
|
|
27
27
|
} },
|
|
28
|
-
{ name: "link1", dataType:
|
|
29
|
-
{ name: "link2", dataType:
|
|
30
|
-
{ name: "link3", dataType:
|
|
28
|
+
{ name: "link1", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
29
|
+
{ name: "link2", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
30
|
+
{ name: "link3", dataType: EDataType.NVARCHAR, isRequired: false },
|
|
31
31
|
],
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
1
|
import { EDataType } from "../../../enums/form.enum";
|
|
3
2
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
3
|
|
|
@@ -8,22 +7,23 @@ export const movieEpisodeForm: IForm = {
|
|
|
8
7
|
id: "movieEpisodeForm",
|
|
9
8
|
contracts: [
|
|
10
9
|
{
|
|
10
|
+
id: "moviesEpisodes",
|
|
11
11
|
endpoint: "/movies-episodes",
|
|
12
12
|
actions: ["create", "get", "getById", "update", "delete"],
|
|
13
13
|
request: {
|
|
14
14
|
entity: "MovieEpisode",
|
|
15
15
|
description: "Represents an episode of a TV series or show.",
|
|
16
16
|
fields: [
|
|
17
|
-
{ name: "_id", dataType:
|
|
18
|
-
{ name: "movieId", dataType:
|
|
17
|
+
{ name: "_id", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
18
|
+
{ name: "movieId", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: true, foreignKey: {
|
|
19
19
|
entity: "Movie",
|
|
20
20
|
connectionAttribute: "_id",
|
|
21
21
|
relationship: "one-to-many"
|
|
22
22
|
} },
|
|
23
|
-
{ name: "title", dataType:
|
|
24
|
-
{ name: "description", dataType:
|
|
25
|
-
{ name: "releaseDate", dataType:
|
|
26
|
-
{ name: "characters", dataType:
|
|
23
|
+
{ name: "title", dataType: EDataType.NVARCHAR, isRequired: true },
|
|
24
|
+
{ name: "description", dataType: EDataType.LONGTEXT, isRequired: true },
|
|
25
|
+
{ name: "releaseDate", dataType: EDataType.DATETIME2, isRequired: true },
|
|
26
|
+
{ name: "characters", dataType: EDataType.UNIQUEIDENTIFIER, isRequired: false, foreignKey: {
|
|
27
27
|
entity: "Character",
|
|
28
28
|
connectionAttribute: "_id",
|
|
29
29
|
relationship: "many-to-many"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
1
|
import { EDataType } from "../../../enums/form.enum";
|
|
3
2
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
3
|
|
|
@@ -8,6 +7,7 @@ export const movieGenreForm: IForm = {
|
|
|
8
7
|
componentType: "form",
|
|
9
8
|
contracts: [
|
|
10
9
|
{
|
|
10
|
+
id: "moviesGenres",
|
|
11
11
|
endpoint: "/movie-genres",
|
|
12
12
|
actions: ["create", "get", "getById", "update", "delete"],
|
|
13
13
|
request : {
|
|
@@ -16,13 +16,13 @@ export const movieGenreForm: IForm = {
|
|
|
16
16
|
fields: [
|
|
17
17
|
{
|
|
18
18
|
name: "name",
|
|
19
|
-
dataType:
|
|
19
|
+
dataType: EDataType.TEXT,
|
|
20
20
|
isRequired: true,
|
|
21
21
|
maxSize: 255,
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
name: "description",
|
|
25
|
-
dataType:
|
|
25
|
+
dataType: EDataType.TEXT,
|
|
26
26
|
isRequired: true,
|
|
27
27
|
maxSize: 255,
|
|
28
28
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { COUNTRIES_FROM_EARTH } from "../../../constants/options/countriesFromEarth";
|
|
2
|
-
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
3
2
|
import { EDataType } from "../../../enums/form.enum";
|
|
4
3
|
import type { IForm } from "../../../interfaces/form.interface";
|
|
5
4
|
|
|
@@ -9,52 +8,53 @@ export const personForm: IForm = {
|
|
|
9
8
|
componentType: "form",
|
|
10
9
|
id: "personForm",
|
|
11
10
|
contracts: [{
|
|
11
|
+
id: "people",
|
|
12
12
|
endpoint: "/people",
|
|
13
13
|
actions: ["create", "get", "getById", "update", "delete"],
|
|
14
14
|
request: {
|
|
15
15
|
entity: "People",
|
|
16
16
|
description: "Represents an individual person with personal details and contact information.",
|
|
17
17
|
fields: [
|
|
18
|
-
{ name: "_id", dataType:
|
|
19
|
-
{ name: "country", dataType:
|
|
20
|
-
{ name: "cpf", dataType:
|
|
21
|
-
{ name: "passport", dataType:
|
|
22
|
-
{ name: "passportIssueDate", dataType:
|
|
23
|
-
{ name: "passportExpiryDate", dataType:
|
|
24
|
-
{ name: "name", dataType:
|
|
25
|
-
{ name: "gender", dataType:
|
|
26
|
-
{ name: "birthday", dataType:
|
|
27
|
-
{ name: "picture", dataType:
|
|
28
|
-
{ name: "phoneOne", dataType:
|
|
29
|
-
{ name: "emailOne", dataType:
|
|
30
|
-
{ name: "addressOneZipCode", dataType:
|
|
31
|
-
{ name: "addressOneStreet", dataType:
|
|
32
|
-
{ name: "addressOneDistrict", dataType:
|
|
33
|
-
{ name: "addressOneNumber", dataType:
|
|
34
|
-
{ name: "addressOneComplement", dataType:
|
|
35
|
-
{ name: "addressOneCity", dataType:
|
|
36
|
-
{ name: "addressOneState", dataType:
|
|
37
|
-
{ name: "addressOneLatitude", dataType:
|
|
38
|
-
{ name: "addressOneLongitude", dataType:
|
|
39
|
-
{ name: "addressTwoZipCode", dataType:
|
|
40
|
-
{ name: "addressTwoStreet", dataType:
|
|
41
|
-
{ name: "addressTwoDistrict", dataType:
|
|
42
|
-
{ name: "addressTwoNumber", dataType:
|
|
43
|
-
{ name: "addressTwoComplement", dataType:
|
|
44
|
-
{ name: "addressTwoCity", dataType:
|
|
45
|
-
{ name: "addressTwoState", dataType:
|
|
46
|
-
{ name: "addressTwoLatitude", dataType:
|
|
47
|
-
{ name: "addressTwoLongitude", dataType:
|
|
48
|
-
{ name: "phoneTwo", dataType:
|
|
49
|
-
{ name: "emailTwo", dataType:
|
|
50
|
-
{ name: "siteOne", dataType:
|
|
51
|
-
{ name: "siteTwo", dataType:
|
|
52
|
-
{ name: "linkedin", dataType:
|
|
53
|
-
{ name: "instagram", dataType:
|
|
54
|
-
{ name: "facebook", dataType:
|
|
55
|
-
{ name: "nickname", dataType:
|
|
56
|
-
{ name: "personDescription", dataType:
|
|
57
|
-
{ name: "personMaritalStatus", dataType:
|
|
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
58
|
]
|
|
59
59
|
},
|
|
60
60
|
}],
|
|
@@ -23,10 +23,13 @@ export interface IForm {
|
|
|
23
23
|
businessRules?: IBusinessRule[];
|
|
24
24
|
userStory?: string;
|
|
25
25
|
contracts: {
|
|
26
|
+
id: string;
|
|
26
27
|
endpoint: string;
|
|
27
28
|
actions: ("create" | "get" | "getById" | "update" | "delete" | "clone")[];
|
|
28
29
|
request?: IContractRequest;
|
|
29
30
|
conditions?: IFormCondition[];
|
|
31
|
+
businessRules?: IBusinessRule[];
|
|
32
|
+
userStory?: string;
|
|
30
33
|
}[];
|
|
31
34
|
kanban?: {
|
|
32
35
|
status: "toDo" | "inProgress" | "done";
|
|
@@ -39,21 +42,28 @@ export interface IForm {
|
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
interface IFormContractGeneral {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
45
|
+
// interface IFormContractGeneral {
|
|
46
|
+
// name: string;
|
|
47
|
+
// dataType: EFormContractDataType;
|
|
48
|
+
// }
|
|
46
49
|
|
|
47
50
|
interface IContractRequest {
|
|
48
51
|
entity: string,
|
|
49
|
-
relatedEntity?:
|
|
52
|
+
relatedEntity?: {
|
|
53
|
+
entity: string;
|
|
54
|
+
connectionAttribute: string;
|
|
55
|
+
fieldsFromEntity: {
|
|
56
|
+
fields: IForm;
|
|
57
|
+
contractId: string;
|
|
58
|
+
}[]
|
|
59
|
+
},
|
|
50
60
|
description?: string,
|
|
51
61
|
fields: IContractRequestField[]
|
|
52
62
|
}
|
|
53
63
|
|
|
54
64
|
interface IContractRequestField {
|
|
55
65
|
name: string;
|
|
56
|
-
dataType:
|
|
66
|
+
dataType: EDataType;
|
|
57
67
|
isRequired?: boolean;
|
|
58
68
|
foreignKey?: IContractRequestFieldForeignKey;
|
|
59
69
|
isPrimaryKey?: boolean;
|
|
@@ -71,15 +81,15 @@ interface IContractRequestFieldForeignKey {
|
|
|
71
81
|
relationship: "many-to-many" | "one-to-many" | "one-to-one"
|
|
72
82
|
}
|
|
73
83
|
|
|
74
|
-
interface IFormContractArray {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
84
|
+
// interface IFormContractArray {
|
|
85
|
+
// name: string;
|
|
86
|
+
// dataType: "array";
|
|
87
|
+
// elements: (IFormContractGeneral | IFormContractArray)[];
|
|
88
|
+
// }
|
|
79
89
|
|
|
80
|
-
export interface IApiRequest {
|
|
81
|
-
|
|
82
|
-
}
|
|
90
|
+
// export interface IApiRequest {
|
|
91
|
+
// body?: (IFormContractGeneral | IFormContractArray)[];
|
|
92
|
+
// }
|
|
83
93
|
|
|
84
94
|
export type IFormElement =
|
|
85
95
|
| IFormInput
|
|
@@ -33,6 +33,9 @@
|
|
|
33
33
|
"items": {
|
|
34
34
|
"type": "object",
|
|
35
35
|
"properties": {
|
|
36
|
+
"id": {
|
|
37
|
+
"type": "string"
|
|
38
|
+
},
|
|
36
39
|
"endpoint": {
|
|
37
40
|
"type": "string"
|
|
38
41
|
},
|
|
@@ -120,15 +123,48 @@
|
|
|
120
123
|
},
|
|
121
124
|
"required": ["name", "dataType"]
|
|
122
125
|
}
|
|
126
|
+
},
|
|
127
|
+
"relatedEntity": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"properties": {
|
|
130
|
+
"entity": {
|
|
131
|
+
"type": "string"
|
|
132
|
+
},
|
|
133
|
+
"connectionAttribute": {
|
|
134
|
+
"type": "string"
|
|
135
|
+
},
|
|
136
|
+
"fieldsFromEntity": {
|
|
137
|
+
"type": "array",
|
|
138
|
+
"items": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"properties": {
|
|
141
|
+
"fields": {
|
|
142
|
+
"$ref": "form.ref.json"
|
|
143
|
+
},
|
|
144
|
+
"contractId":{
|
|
145
|
+
"type": "string"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"required": ["fields", "contractId"]
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"required": ["entity", "connectionAttribute", "fieldsFromEntity"]
|
|
123
153
|
}
|
|
124
154
|
},
|
|
125
155
|
"required": ["entity", "fields"]
|
|
126
156
|
},
|
|
127
157
|
"conditions": {
|
|
128
158
|
"$ref": "condition.ref.json"
|
|
159
|
+
},
|
|
160
|
+
"businessRules": {
|
|
161
|
+
"$ref": "business-rules.ref.json"
|
|
162
|
+
},
|
|
163
|
+
"userStory": {
|
|
164
|
+
"type": "string"
|
|
129
165
|
}
|
|
130
166
|
},
|
|
131
|
-
"required": ["endpoint", "actions"]
|
|
167
|
+
"required": ["id", "endpoint", "actions"]
|
|
132
168
|
}
|
|
133
169
|
},
|
|
134
170
|
"kanban": {
|