rapida-partner 1.1.5 → 1.1.7
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/examples/components/forms/character.form.ts +9 -22
- package/src/examples/components/forms/company.form.ts +49 -46
- package/src/examples/components/forms/movie.form.ts +19 -131
- package/src/examples/components/forms/movieEpisode.form.ts +78 -0
- package/src/examples/components/forms/movieGenre.form.ts +12 -6
- package/src/examples/components/forms/person.form.ts +44 -41
- package/src/examples/components/lists/movieEpisode.list.ts +51 -0
- package/src/examples/modules/movie.ts +5 -1
- package/src/interfaces/form.interface.ts +28 -1
- package/src/schemas/form-autocomplete.ref.json +11 -6
- package/src/schemas/form.ref.json +78 -6
|
@@ -12,27 +12,15 @@ export const characterForm: IForm = {
|
|
|
12
12
|
endpoint: "/characters",
|
|
13
13
|
methods: [{ verb: "POST" }, { verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }],
|
|
14
14
|
request: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "characterDescription",
|
|
26
|
-
dataType: EFormContractDataType.WYSIWYG,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "characterType",
|
|
30
|
-
dataType: EFormContractDataType.TEXT,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "characterGender",
|
|
34
|
-
dataType: EFormContractDataType.TEXT,
|
|
35
|
-
},
|
|
15
|
+
entity: "Character",
|
|
16
|
+
description: "Represents a character in a story or narrative.",
|
|
17
|
+
fields: [
|
|
18
|
+
{ name: "_id", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
19
|
+
{ name: "characterName", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "characterImage", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
21
|
+
{ name: "characterDescription", dataType: EFormContractDataType.LONGTEXT, isRequired: false },
|
|
22
|
+
{ name: "characterType", dataType: EFormContractDataType.NVARCHAR, enum: ["protagonist", "antagonist", "hero", "villain", "sidekick", "supporting"], isRequired: false },
|
|
23
|
+
{ name: "characterGender", dataType: EFormContractDataType.NVARCHAR, enum: ["male", "female", "other"], isRequired: false },
|
|
36
24
|
],
|
|
37
25
|
},
|
|
38
26
|
}
|
|
@@ -86,7 +74,6 @@ export const characterForm: IForm = {
|
|
|
86
74
|
options: [
|
|
87
75
|
{ value: "male", label: "Masculino" },
|
|
88
76
|
{ value: "female", label: "Feminino" },
|
|
89
|
-
{ value: "non-binary", label: "Não-binário" },
|
|
90
77
|
{ value: "other", label: "Outro" },
|
|
91
78
|
],
|
|
92
79
|
}
|
|
@@ -12,50 +12,52 @@ export const companyForm: IForm = {
|
|
|
12
12
|
endpoint: "/companies",
|
|
13
13
|
methods: [{ verb: "POST" }, { verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }],
|
|
14
14
|
request: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{name: "
|
|
19
|
-
{name: "
|
|
20
|
-
{name: "
|
|
21
|
-
{name: "
|
|
22
|
-
{name: "
|
|
23
|
-
{name: "
|
|
24
|
-
{name: "
|
|
25
|
-
{name: "
|
|
26
|
-
{name: "
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
{name: "
|
|
35
|
-
{name: "
|
|
36
|
-
{name: "
|
|
37
|
-
{name: "
|
|
38
|
-
{name: "
|
|
39
|
-
{name: "
|
|
40
|
-
{name: "
|
|
41
|
-
{name: "
|
|
42
|
-
{name: "
|
|
43
|
-
{name: "
|
|
44
|
-
{name: "
|
|
45
|
-
{name: "
|
|
46
|
-
{name: "
|
|
47
|
-
{name: "
|
|
48
|
-
{name: "
|
|
49
|
-
{name: "
|
|
50
|
-
{name: "
|
|
51
|
-
{name: "
|
|
52
|
-
{name: "
|
|
53
|
-
{name: "
|
|
54
|
-
{name: "
|
|
55
|
-
{name: "
|
|
56
|
-
{name: "
|
|
57
|
-
{name: "
|
|
58
|
-
{name: "
|
|
15
|
+
entity: "Companies",
|
|
16
|
+
description: "Represents a company or business entity.",
|
|
17
|
+
fields: [
|
|
18
|
+
{ name: "_id", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
19
|
+
{ name: "country", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "cnpj", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
21
|
+
{ name: "name", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
22
|
+
{ name: "businessName", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
23
|
+
{ name: "birthday", dataType: EFormContractDataType.DATE, isRequired: false },
|
|
24
|
+
{ name: "legalNature", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
25
|
+
{ name: "stateRegistration", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
26
|
+
{ name: "municipalRegistration", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
27
|
+
{ name: "description", dataType: EFormContractDataType.LONGTEXT, isRequired: false },
|
|
28
|
+
{ name: "logo", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
29
|
+
{ name: "partners", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: false, foreignKey: {
|
|
30
|
+
entity: "People",
|
|
31
|
+
connectionAttribute: "_id",
|
|
32
|
+
relationship: "many-to-many"
|
|
33
|
+
} },
|
|
34
|
+
{ name: "phoneOne", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
35
|
+
{ name: "emailOne", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
36
|
+
{ name: "addressOneZipCode", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
37
|
+
{ name: "addressOneStreet", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
38
|
+
{ name: "addressOneDistrict", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
39
|
+
{ name: "addressOneNumber", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
40
|
+
{ name: "addressOneComplement", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
41
|
+
{ name: "addressOneCity", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
42
|
+
{ name: "addressOneState", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
43
|
+
{ name: "addressOneLatitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
44
|
+
{ name: "addressOneLongitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
45
|
+
{ name: "addressTwoZipCode", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
46
|
+
{ name: "addressTwoStreet", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
47
|
+
{ name: "addressTwoDistrict", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
48
|
+
{ name: "addressTwoNumber", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
49
|
+
{ name: "addressTwoComplement", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
50
|
+
{ name: "addressTwoCity", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
51
|
+
{ name: "addressTwoState", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
52
|
+
{ name: "addressTwoLatitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
53
|
+
{ name: "addressTwoLongitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
54
|
+
{ name: "phoneTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
55
|
+
{ name: "emailTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
56
|
+
{ name: "siteOne", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
57
|
+
{ name: "siteTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
58
|
+
{ name: "linkedin", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
59
|
+
{ name: "instagram", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
60
|
+
{ name: "facebook", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
59
61
|
]
|
|
60
62
|
}
|
|
61
63
|
}],
|
|
@@ -402,10 +404,11 @@ export const companyForm: IForm = {
|
|
|
402
404
|
name: "partners",
|
|
403
405
|
optionsApi: {
|
|
404
406
|
endpoint: "/people",
|
|
405
|
-
labelField: ["
|
|
407
|
+
labelField: ["cpf", "name"],
|
|
406
408
|
valueField: "_id",
|
|
407
|
-
paramsToFilter: ["
|
|
409
|
+
paramsToFilter: ["cpf", "name"],
|
|
408
410
|
paramType: "query",
|
|
411
|
+
relatedEntity: "People",
|
|
409
412
|
},
|
|
410
413
|
isMultiple: true,
|
|
411
414
|
},
|
|
@@ -11,78 +11,24 @@ export const movieForm: IForm = {
|
|
|
11
11
|
endpoint: "/movies",
|
|
12
12
|
methods: [{ verb: "POST" }, { verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }],
|
|
13
13
|
request: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
name: "imdbRating",
|
|
33
|
-
dataType: EFormContractDataType.NUMBER,
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: "movieGenres",
|
|
37
|
-
dataType: "array",
|
|
38
|
-
elements: [
|
|
39
|
-
{
|
|
40
|
-
name: "movieGenreId",
|
|
41
|
-
dataType: EFormContractDataType.TEXT,
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: "link1",
|
|
47
|
-
dataType: EFormContractDataType.TEXT,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: "link2",
|
|
51
|
-
dataType: EFormContractDataType.TEXT,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "link3",
|
|
55
|
-
dataType: EFormContractDataType.TEXT,
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: "episodes",
|
|
59
|
-
dataType: "array",
|
|
60
|
-
elements: [
|
|
61
|
-
{
|
|
62
|
-
name: "episodeTitle",
|
|
63
|
-
dataType: EFormContractDataType.TEXT,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "episodeDescription",
|
|
67
|
-
dataType: EFormContractDataType.WYSIWYG,
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
name: "episodeReleaseDate",
|
|
71
|
-
dataType: EFormContractDataType.DATE,
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
name: "charactersId",
|
|
75
|
-
dataType: "array",
|
|
76
|
-
elements: [
|
|
77
|
-
{
|
|
78
|
-
name: "characterId",
|
|
79
|
-
dataType: EFormContractDataType.TEXT,
|
|
80
|
-
},
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
]
|
|
14
|
+
entity: "Movie",
|
|
15
|
+
description: "Represents a movie or TV series in the system.",
|
|
16
|
+
fields: [
|
|
17
|
+
{ name: "_id", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
18
|
+
{ name: "pictureFile", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
19
|
+
{ name: "name", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
20
|
+
{ name: "description", dataType: EFormContractDataType.LONGTEXT, isRequired: true },
|
|
21
|
+
{ name: "releaseDate", dataType: EFormContractDataType.DATE, isRequired: true },
|
|
22
|
+
{ name: "imdbRating", dataType: EFormContractDataType.DECIMAL, isRequired: true },
|
|
23
|
+
{ name: "movieGenres", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, foreignKey: {
|
|
24
|
+
entity: "MovieGenre",
|
|
25
|
+
connectionAttribute: "_id",
|
|
26
|
+
relationship: "many-to-many"
|
|
27
|
+
} },
|
|
28
|
+
{ name: "link1", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
29
|
+
{ name: "link2", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
30
|
+
{ name: "link3", dataType: EFormContractDataType.NVARCHAR, isRequired: false },
|
|
31
|
+
],
|
|
86
32
|
}
|
|
87
33
|
}
|
|
88
34
|
],
|
|
@@ -147,6 +93,7 @@ export const movieForm: IForm = {
|
|
|
147
93
|
valueField: "_id",
|
|
148
94
|
paramsToFilter: ["name"],
|
|
149
95
|
paramType: "query",
|
|
96
|
+
relatedEntity: "MovieGenres"
|
|
150
97
|
},
|
|
151
98
|
isMultiple: true,
|
|
152
99
|
isRequired: true,
|
|
@@ -172,65 +119,6 @@ export const movieForm: IForm = {
|
|
|
172
119
|
},
|
|
173
120
|
],
|
|
174
121
|
},
|
|
175
|
-
{
|
|
176
|
-
id: "episodesTab",
|
|
177
|
-
title: "Episódios",
|
|
178
|
-
elements: [
|
|
179
|
-
{
|
|
180
|
-
type: "array",
|
|
181
|
-
id: "episodes",
|
|
182
|
-
name: "episodes",
|
|
183
|
-
title: "Episódio",
|
|
184
|
-
elements: [
|
|
185
|
-
{
|
|
186
|
-
type: "input",
|
|
187
|
-
dataType: EDataType.TEXT,
|
|
188
|
-
label: "Título do episódio",
|
|
189
|
-
name: "episodeTitle",
|
|
190
|
-
isRequired: true,
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
type: "input",
|
|
194
|
-
dataType: EDataType.WYSIWYG,
|
|
195
|
-
label: "Descrição do episódio",
|
|
196
|
-
name: "episodeDescription",
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
type: "input",
|
|
200
|
-
dataType: EDataType.DATE,
|
|
201
|
-
label: "Data de lançamento do episódio",
|
|
202
|
-
name: "episodeReleaseDate",
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
type: "autocomplete",
|
|
206
|
-
dataType: EDataType.TEXT,
|
|
207
|
-
name: "charactersId",
|
|
208
|
-
label: "Personagens no episódio",
|
|
209
|
-
optionsApi: {
|
|
210
|
-
endpoint: "/characters",
|
|
211
|
-
labelField: ["characterName"],
|
|
212
|
-
valueField: "_id",
|
|
213
|
-
paramsToFilter: ["characterName"],
|
|
214
|
-
paramType: "query",
|
|
215
|
-
relatedEntity: "Character",
|
|
216
|
-
},
|
|
217
|
-
},
|
|
218
|
-
],
|
|
219
|
-
},
|
|
220
|
-
],
|
|
221
|
-
conditions: [
|
|
222
|
-
{
|
|
223
|
-
type: "form",
|
|
224
|
-
elements: [
|
|
225
|
-
{
|
|
226
|
-
key: "movieGenres",
|
|
227
|
-
comparisonOperator: "===",
|
|
228
|
-
value: "Série de TV",
|
|
229
|
-
},
|
|
230
|
-
],
|
|
231
|
-
},
|
|
232
|
-
],
|
|
233
|
-
},
|
|
234
122
|
],
|
|
235
123
|
},
|
|
236
124
|
],
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { EFormContractDataType } from "../../../enums/form-contract.enum";
|
|
2
|
+
import { EDataType } from "../../../enums/form.enum";
|
|
3
|
+
import type { IForm } from "../../../interfaces/form.interface";
|
|
4
|
+
|
|
5
|
+
export const movieEpisodeForm: IForm = {
|
|
6
|
+
title: "Gerenciar episódio",
|
|
7
|
+
componentType: "form",
|
|
8
|
+
id: "movieEpisodeForm",
|
|
9
|
+
contracts: [
|
|
10
|
+
{
|
|
11
|
+
endpoint: "/movies-episodes",
|
|
12
|
+
methods: [{ verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }, { verb: "POST" }],
|
|
13
|
+
request: {
|
|
14
|
+
entity: "MovieEpisode",
|
|
15
|
+
description: "Represents an episode of a TV series or show.",
|
|
16
|
+
fields: [
|
|
17
|
+
{ name: "_id", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
18
|
+
{ name: "movieId", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, foreignKey: {
|
|
19
|
+
entity: "Movie",
|
|
20
|
+
connectionAttribute: "_id",
|
|
21
|
+
relationship: "one-to-many"
|
|
22
|
+
} },
|
|
23
|
+
{ name: "title", dataType: EFormContractDataType.NVARCHAR, isRequired: true },
|
|
24
|
+
{ name: "description", dataType: EFormContractDataType.LONGTEXT, isRequired: true },
|
|
25
|
+
{ name: "releaseDate", dataType: EFormContractDataType.DATETIME2, isRequired: true },
|
|
26
|
+
{ name: "characters", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: false, foreignKey: {
|
|
27
|
+
entity: "Character",
|
|
28
|
+
connectionAttribute: "_id",
|
|
29
|
+
relationship: "many-to-many"
|
|
30
|
+
} },
|
|
31
|
+
],
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
elements: [
|
|
36
|
+
{
|
|
37
|
+
type: "array",
|
|
38
|
+
id: "episodes",
|
|
39
|
+
name: "episodes",
|
|
40
|
+
title: "Episódio",
|
|
41
|
+
elements: [
|
|
42
|
+
{
|
|
43
|
+
type: "input",
|
|
44
|
+
dataType: EDataType.TEXT,
|
|
45
|
+
label: "Título do episódio",
|
|
46
|
+
name: "episodeTitle",
|
|
47
|
+
isRequired: true,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: "input",
|
|
51
|
+
dataType: EDataType.WYSIWYG,
|
|
52
|
+
label: "Descrição do episódio",
|
|
53
|
+
name: "episodeDescription",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: "input",
|
|
57
|
+
dataType: EDataType.DATE,
|
|
58
|
+
label: "Data de lançamento do episódio",
|
|
59
|
+
name: "episodeReleaseDate",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: "autocomplete",
|
|
63
|
+
dataType: EDataType.TEXT,
|
|
64
|
+
name: "charactersId",
|
|
65
|
+
label: "Personagens no episódio",
|
|
66
|
+
optionsApi: {
|
|
67
|
+
endpoint: "/characters",
|
|
68
|
+
labelField: ["characterName"],
|
|
69
|
+
valueField: "_id",
|
|
70
|
+
paramsToFilter: ["characterName"],
|
|
71
|
+
paramType: "query",
|
|
72
|
+
relatedEntity: "Character",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
}
|
|
@@ -10,18 +10,24 @@ export const movieGenreForm: IForm = {
|
|
|
10
10
|
{
|
|
11
11
|
endpoint: "/movie-genres",
|
|
12
12
|
methods: [{ verb: "POST" }, { verb: "PUT" }, { verb: "GET" }, { verb: "DELETE" }],
|
|
13
|
-
request: {
|
|
14
|
-
|
|
13
|
+
request : {
|
|
14
|
+
entity: "moviesGenres",
|
|
15
|
+
description: "",
|
|
16
|
+
fields: [
|
|
15
17
|
{
|
|
16
18
|
name: "name",
|
|
17
19
|
dataType: EFormContractDataType.TEXT,
|
|
20
|
+
isRequired: true,
|
|
21
|
+
maxSize: 255,
|
|
18
22
|
},
|
|
19
23
|
{
|
|
20
24
|
name: "description",
|
|
21
|
-
dataType: EFormContractDataType.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
dataType: EFormContractDataType.TEXT,
|
|
26
|
+
isRequired: true,
|
|
27
|
+
maxSize: 255,
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
25
31
|
}
|
|
26
32
|
],
|
|
27
33
|
id: "movieGenreForm",
|
|
@@ -12,48 +12,51 @@ export const personForm: IForm = {
|
|
|
12
12
|
endpoint: "/people",
|
|
13
13
|
methods: [{ verb: "GET" }, { verb: "POST" }, { verb: "PUT" }, { verb: "DELETE" }],
|
|
14
14
|
request: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{ name: "
|
|
19
|
-
{ name: "
|
|
20
|
-
{ name: "
|
|
21
|
-
{ name: "
|
|
22
|
-
{ name: "
|
|
23
|
-
{ name: "
|
|
24
|
-
{ name: "
|
|
25
|
-
{ name: "
|
|
26
|
-
{ name: "
|
|
27
|
-
{ name: "
|
|
28
|
-
{ name: "
|
|
29
|
-
{ name: "
|
|
30
|
-
{ name: "
|
|
31
|
-
{ name: "
|
|
32
|
-
{ name: "
|
|
33
|
-
{ name: "
|
|
34
|
-
{ name: "
|
|
35
|
-
{ name: "
|
|
36
|
-
{ name: "
|
|
37
|
-
{ name: "
|
|
38
|
-
{ name: "
|
|
39
|
-
{ name: "
|
|
40
|
-
{ name: "
|
|
41
|
-
{ name: "
|
|
42
|
-
{ name: "
|
|
43
|
-
{ name: "
|
|
44
|
-
{ name: "
|
|
45
|
-
{ name: "
|
|
46
|
-
{ name: "
|
|
47
|
-
{ name: "
|
|
48
|
-
{ name: "
|
|
49
|
-
{ name: "
|
|
50
|
-
{ name: "
|
|
51
|
-
{ name: "
|
|
52
|
-
{ name: "
|
|
53
|
-
{ name: "
|
|
54
|
-
{ name: "
|
|
15
|
+
entity: "People",
|
|
16
|
+
description: "Represents an individual person with personal details and contact information.",
|
|
17
|
+
fields: [
|
|
18
|
+
{ name: "_id", dataType: EFormContractDataType.UNIQUEIDENTIFIER, isRequired: true, isPrimaryKey: true },
|
|
19
|
+
{ name: "country", dataType: EFormContractDataType.NVARCHAR, isRequired: true, maxSize: 100 },
|
|
20
|
+
{ name: "cpf", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 14 },
|
|
21
|
+
{ name: "passport", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 20 },
|
|
22
|
+
{ name: "passportIssueDate", dataType: EFormContractDataType.DATETIME2, isRequired: false },
|
|
23
|
+
{ name: "passportExpiryDate", dataType: EFormContractDataType.DATETIME2, isRequired: false },
|
|
24
|
+
{ name: "name", dataType: EFormContractDataType.NVARCHAR, isRequired: true, maxSize: 200 },
|
|
25
|
+
{ name: "gender", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 10, enum: ["male", "female", "other"] },
|
|
26
|
+
{ name: "birthday", dataType: EFormContractDataType.DATETIME2, isRequired: false },
|
|
27
|
+
{ name: "picture", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
28
|
+
{ name: "phoneOne", dataType: EFormContractDataType.NVARCHAR, isRequired: true, maxSize: 20 },
|
|
29
|
+
{ name: "emailOne", dataType: EFormContractDataType.NVARCHAR, isRequired: true, maxSize: 100 },
|
|
30
|
+
{ name: "addressOneZipCode", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 10 },
|
|
31
|
+
{ name: "addressOneStreet", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
32
|
+
{ name: "addressOneDistrict", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
33
|
+
{ name: "addressOneNumber", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 20 },
|
|
34
|
+
{ name: "addressOneComplement", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
35
|
+
{ name: "addressOneCity", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
36
|
+
{ name: "addressOneState", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
37
|
+
{ name: "addressOneLatitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 50 },
|
|
38
|
+
{ name: "addressOneLongitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 50 },
|
|
39
|
+
{ name: "addressTwoZipCode", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 10 },
|
|
40
|
+
{ name: "addressTwoStreet", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
41
|
+
{ name: "addressTwoDistrict", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
42
|
+
{ name: "addressTwoNumber", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 20 },
|
|
43
|
+
{ name: "addressTwoComplement", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
44
|
+
{ name: "addressTwoCity", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
45
|
+
{ name: "addressTwoState", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
46
|
+
{ name: "addressTwoLatitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 50 },
|
|
47
|
+
{ name: "addressTwoLongitude", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 50 },
|
|
48
|
+
{ name: "phoneTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 20 },
|
|
49
|
+
{ name: "emailTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
50
|
+
{ name: "siteOne", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
51
|
+
{ name: "siteTwo", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
52
|
+
{ name: "linkedin", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
53
|
+
{ name: "instagram", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
54
|
+
{ name: "facebook", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 200 },
|
|
55
|
+
{ name: "nickname", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 100 },
|
|
56
|
+
{ name: "personDescription", dataType: EFormContractDataType.LONGTEXT, isRequired: false },
|
|
57
|
+
{ name: "personMaritalStatus", dataType: EFormContractDataType.NVARCHAR, isRequired: false, maxSize: 20, enum: ["single", "married", "divorced", "widower", "engaged", "stableUnion"] },
|
|
55
58
|
]
|
|
56
|
-
}
|
|
59
|
+
},
|
|
57
60
|
}],
|
|
58
61
|
guards: "isAuthorized",
|
|
59
62
|
elements: [
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { IList } from "../../../interfaces/list.interface";
|
|
2
|
+
|
|
3
|
+
export const movieEpisodeList: IList = {
|
|
4
|
+
componentType: "list",
|
|
5
|
+
id: "movieEpisodeList",
|
|
6
|
+
title: "Lista de episódios de filmes",
|
|
7
|
+
guards: ["isAuthorized"],
|
|
8
|
+
dataSource: {
|
|
9
|
+
endpoint: "/movies-episodes",
|
|
10
|
+
paramType: "query",
|
|
11
|
+
hasAuthentication: true,
|
|
12
|
+
},
|
|
13
|
+
properties: [
|
|
14
|
+
{
|
|
15
|
+
property: "episodeTitle", type: "title", label: "Título",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
property: "episodeDescription", type: "description", label: "Descrição",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
callsToActionMenu: [
|
|
22
|
+
{
|
|
23
|
+
label: "Editar",
|
|
24
|
+
icon: "pencil",
|
|
25
|
+
action: {
|
|
26
|
+
link: {
|
|
27
|
+
endpoint: "/movie-episode-form",
|
|
28
|
+
propertiesAsQueryParam: ["_id"],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: "Excluir",
|
|
34
|
+
icon: "delete",
|
|
35
|
+
action: {
|
|
36
|
+
link: {
|
|
37
|
+
endpoint: "/movie-episode-list",
|
|
38
|
+
},
|
|
39
|
+
request: {
|
|
40
|
+
endpoint: "/movies-episodes",
|
|
41
|
+
verb: "delete",
|
|
42
|
+
propertiesAsPathParam: ["_id"],
|
|
43
|
+
dialog: {
|
|
44
|
+
title: "Excluir conteúdo",
|
|
45
|
+
message: "Deseja realmente excluir esse conteúdo?",
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
};
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import type { IModule } from "../../interfaces/project.interface";
|
|
2
2
|
import { movieForm } from "../components/forms/movie.form";
|
|
3
|
+
import { movieEpisodeForm } from "../components/forms/movieEpisode.form";
|
|
3
4
|
import { movieGenreForm } from "../components/forms/movieGenre.form";
|
|
4
5
|
import { movieList } from "../components/lists/movie.list";
|
|
6
|
+
import { movieEpisodeList } from "../components/lists/movieEpisode.list";
|
|
5
7
|
import { movieGenreList } from "../components/lists/movieGenre.list";
|
|
6
8
|
|
|
7
9
|
export const movieModule: IModule = {
|
|
8
10
|
id: "movieModule",
|
|
9
|
-
title: "
|
|
11
|
+
title: "Episódio",
|
|
10
12
|
icon: "movie",
|
|
11
13
|
components: [
|
|
12
14
|
movieForm,
|
|
13
15
|
movieList,
|
|
14
16
|
movieGenreForm,
|
|
15
17
|
movieGenreList,
|
|
18
|
+
movieEpisodeForm,
|
|
19
|
+
movieEpisodeList
|
|
16
20
|
]
|
|
17
21
|
}
|
|
18
22
|
|