@oondemand/create-central-oon 0.5.6 → 0.6.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/README.md +41 -89
- package/bin/cli.js +4 -17
- package/docs/ADVANCED_UX_PATTERNS.md +3 -2
- package/docs/AGENTS.md +4 -5
- package/docs/AGENT_WORKFLOW.md +1 -1
- package/docs/BACKEND_API.md +2 -4
- package/docs/BACKEND_PATTERNS.md +1 -2
- package/docs/BACKEND_PROCESS_MANIFEST.md +6 -6
- package/docs/CAPABILITIES.md +2 -3
- package/docs/CHECKLIST_IMPLEMENTACAO.md +4 -4
- package/docs/CORE_UPGRADE.md +2 -2
- package/docs/FRONTEND_API.md +20 -23
- package/docs/FRONTEND_CODE_FIRST.md +35 -0
- package/docs/FRONTEND_PATTERNS.md +13 -15
- package/docs/METADATA_CRUD_UI.md +1 -1
- package/docs/PORTAL_COCKPIT_PATTERNS.md +10 -145
- package/docs/REACTIVE_DOMAIN_FORMULAS.md +2 -2
- package/docs/releases/0.6.0.md +23 -0
- package/package.json +1 -1
- package/schemas/central.app.schema.json +2 -16
- package/src/conformance.js +42 -106
- package/src/index.js +4 -28
- package/src/render.js +4 -30
- package/templates/_base/README.md +7 -6
- package/templates/_base/backend/package.json +1 -1
- package/templates/_base/central.app.json +4 -9
- package/templates/_base/frontend/package.json +1 -1
- package/templates/_base/frontend/src/app/app.tsx +25 -0
- package/templates/_base/frontend/src/app/navigation.ts +5 -0
- package/templates/_base/frontend/src/app/routes.tsx +6 -0
- package/templates/_base/frontend/src/app/theme.ts +8 -0
- package/templates/_base/frontend/src/components/gitkeep +1 -0
- package/templates/_base/frontend/src/features/gitkeep +1 -0
- package/templates/_base/frontend/src/layouts/gitkeep +1 -0
- package/templates/_base/frontend/src/main.tsx +3 -8
- package/templates/_base/frontend/src/pages/HomePage.tsx +25 -0
- package/templates/_base/frontend/tsconfig.json +1 -1
- package/templates/_base/package.json +1 -1
- package/docs/CONNECTORS_AND_INTEGRATIONS.md +0 -66
- package/docs/FRONTEND_MANIFEST_REFERENCE.md +0 -487
- package/templates/_base/backend/src/integrations/gitkeep +0 -0
- package/templates/_base/frontend/central.ui.json +0 -58
- package/templates/_base/frontend/src/collections/gitkeep +0 -0
- package/templates/_base/frontend/src/dashboards/gitkeep +0 -0
- package/templates/_base/frontend/src/documents/gitkeep +0 -0
- package/templates/_base/frontend/src/overrides/gitkeep +0 -0
- package/templates/_base/frontend/src/pipelines/gitkeep +0 -0
- package/templates/basic/backend/src/models/Pessoa.js +0 -21
- package/templates/basic/frontend/central.ui.json +0 -8
- package/templates/documentos-fiscais/backend/central.config.js +0 -32
- package/templates/documentos-fiscais/backend/src/models/DocumentoFiscal.js +0 -23
- package/templates/documentos-fiscais/frontend/central.ui.json +0 -16
- package/templates/multi-moedas/backend/central.config.js +0 -32
- package/templates/multi-moedas/backend/src/models/Cotacao.js +0 -23
- package/templates/multi-moedas/backend/src/models/Moeda.js +0 -15
- package/templates/multi-moedas/frontend/central.ui.json +0 -11
- package/templates/omie-sidecar/backend/central.config.js +0 -33
- package/templates/omie-sidecar/backend/src/mappings/pessoa-cliente.js +0 -20
- package/templates/omie-sidecar/backend/src/models/Pessoa.js +0 -24
- package/templates/omie-sidecar/backend/src/triggers/Pessoa.js +0 -14
- package/templates/omie-sidecar/frontend/central.ui.json +0 -8
- package/templates/pedidos-marketplace/backend/central.config.js +0 -32
- package/templates/pedidos-marketplace/backend/src/models/Pedido.js +0 -22
- package/templates/pedidos-marketplace/backend/src/models/Produto.js +0 -16
- package/templates/pedidos-marketplace/frontend/central.ui.json +0 -10
- package/templates/servicos-prestados/backend/central.config.js +0 -32
- package/templates/servicos-prestados/backend/src/models/Cliente.js +0 -15
- package/templates/servicos-prestados/backend/src/models/ServicoPrestado.js +0 -22
- package/templates/servicos-prestados/frontend/central.ui.json +0 -10
- package/templates/servicos-tomados/backend/central.config.js +0 -32
- package/templates/servicos-tomados/backend/src/models/Pessoa.js +0 -15
- package/templates/servicos-tomados/backend/src/models/Servico.js +0 -22
- package/templates/servicos-tomados/frontend/central.ui.json +0 -10
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Cotação em moeda estrangeira com valor convertido para BRL. Mostra os
|
|
5
|
-
* helpers `fields.currency*` do módulo Multi-moedas.
|
|
6
|
-
*/
|
|
7
|
-
defineModel({
|
|
8
|
-
name: "Cotacao",
|
|
9
|
-
singular: "cotacao",
|
|
10
|
-
basePath: "/cotacoes",
|
|
11
|
-
schema: {
|
|
12
|
-
descricao: fields.string({ required: true, label: "Descrição" }),
|
|
13
|
-
valor: fields.currency({ label: "Valor" }),
|
|
14
|
-
moeda: fields.currencyCode({ label: "Moeda" }),
|
|
15
|
-
valorConvertido: fields.currencyConverted({ base: "BRL", label: "Valor (BRL)" }),
|
|
16
|
-
validade: fields.date({ label: "Validade" }),
|
|
17
|
-
status: fields.enum(["rascunho", "enviada", "aprovada", "recusada"], {
|
|
18
|
-
default: "rascunho",
|
|
19
|
-
label: "Status",
|
|
20
|
-
}),
|
|
21
|
-
},
|
|
22
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
23
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/** Moeda com cotação corrente (atualizada via action do módulo currencies). */
|
|
4
|
-
defineModel({
|
|
5
|
-
name: "Moeda",
|
|
6
|
-
singular: "moeda",
|
|
7
|
-
basePath: "/moedas",
|
|
8
|
-
schema: {
|
|
9
|
-
codigo: fields.currencyCode({ required: true, label: "Código" }),
|
|
10
|
-
nome: fields.string({ required: true, label: "Nome" }),
|
|
11
|
-
cotacao: fields.number({ label: "Cotação (BRL)", default: 1 }),
|
|
12
|
-
ativa: fields.boolean({ label: "Ativa", default: true }),
|
|
13
|
-
},
|
|
14
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
15
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 2,
|
|
3
|
-
"backend": { "metadataUrl": "/core/metadata" },
|
|
4
|
-
"navigation": { "mode": "auto" },
|
|
5
|
-
"collections": [
|
|
6
|
-
{ "model": "Moeda", "mode": "dynamic", "section": "Multi-moedas" },
|
|
7
|
-
{ "model": "Cotacao", "mode": "dynamic", "section": "Multi-moedas" }
|
|
8
|
-
],
|
|
9
|
-
"pipelines": [],
|
|
10
|
-
"documents": []
|
|
11
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central __NAME__ — template omie-sidecar. Liga os módulos de integração e
|
|
3
|
-
* Omie do Core. O engine de Omie (chaves, fila, retries) vive no Core; aqui só
|
|
4
|
-
* declaramos o mapping de domínio.
|
|
5
|
-
*/
|
|
6
|
-
module.exports = {
|
|
7
|
-
ecosystem: { role: "member" },
|
|
8
|
-
activation: { enabled: true, configurationVersion: 1, fields: [] },
|
|
9
|
-
name: "__NAME__",
|
|
10
|
-
slug: "__SLUG__",
|
|
11
|
-
|
|
12
|
-
modules: {
|
|
13
|
-
collections: true,
|
|
14
|
-
documents: false,
|
|
15
|
-
pipelines: false,
|
|
16
|
-
integrations: true,
|
|
17
|
-
omie: true,
|
|
18
|
-
assistants: false,
|
|
19
|
-
currencies: false,
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
domain: {
|
|
23
|
-
models: "src/models",
|
|
24
|
-
validations: "src/validations",
|
|
25
|
-
triggers: "src/triggers",
|
|
26
|
-
hooks: "src/hooks",
|
|
27
|
-
mappings: "src/mappings",
|
|
28
|
-
documents: "src/documents",
|
|
29
|
-
pipelines: "src/pipelines",
|
|
30
|
-
integrations: "src/integrations",
|
|
31
|
-
routes: "src/routes",
|
|
32
|
-
},
|
|
33
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const { defineOmieMapping } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Mapping de domínio Pessoa -> Cliente Omie. `toOmie` traduz o payload do
|
|
5
|
-
* domínio na chamada da API Omie. O engine (chaves, fila, retries) é do Core.
|
|
6
|
-
*/
|
|
7
|
-
defineOmieMapping("pessoa-cliente", {
|
|
8
|
-
toOmie: (pessoa) => ({
|
|
9
|
-
endpoint: "geral/clientes/",
|
|
10
|
-
call: "IncluirCliente",
|
|
11
|
-
param: [
|
|
12
|
-
{
|
|
13
|
-
codigo_cliente_integracao: String(pessoa.idPessoa || pessoa._id || ""),
|
|
14
|
-
razao_social: pessoa.nome,
|
|
15
|
-
email: pessoa.email,
|
|
16
|
-
cnpj_cpf: pessoa.documento,
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Pessoa/Cliente sincronizada com a Omie. Os campos de sincronização são
|
|
5
|
-
* preenchidos pelo Core via o mapping declarado em src/mappings.
|
|
6
|
-
*/
|
|
7
|
-
defineModel({
|
|
8
|
-
name: "Pessoa",
|
|
9
|
-
singular: "pessoa",
|
|
10
|
-
basePath: "/pessoas",
|
|
11
|
-
schema: {
|
|
12
|
-
nome: fields.string({ required: true, label: "Nome" }),
|
|
13
|
-
email: fields.string({ label: "E-mail" }),
|
|
14
|
-
documento: fields.string({ label: "Documento" }),
|
|
15
|
-
tipo: fields.enum(["pf", "pj"], { label: "Tipo", default: "pf" }),
|
|
16
|
-
codigo_cliente_omie: fields.string({ searchable: false, label: "Código Omie" }),
|
|
17
|
-
status_sincronizacao_omie: fields.enum(["pendente", "sucesso", "erro"], {
|
|
18
|
-
default: "pendente",
|
|
19
|
-
label: "Sync Omie",
|
|
20
|
-
}),
|
|
21
|
-
status: fields.enum(["ativo", "inativo"], { label: "Status", default: "ativo" }),
|
|
22
|
-
},
|
|
23
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
24
|
-
});
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const { defineTrigger, omie } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Após criar/alterar uma Pessoa, enfileira o sync com a Omie usando o mapping
|
|
5
|
-
* declarado. No-op seguro se a Omie não estiver configurada (sem app_key).
|
|
6
|
-
*/
|
|
7
|
-
defineTrigger("Pessoa", {
|
|
8
|
-
after: async (doc) => {
|
|
9
|
-
await omie.sync({
|
|
10
|
-
mapping: "pessoa-cliente",
|
|
11
|
-
payload: { idPessoa: String(doc._id), nome: doc.nome, email: doc.email, documento: doc.documento },
|
|
12
|
-
});
|
|
13
|
-
},
|
|
14
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central __NAME__ — template pedidos-marketplace. Catálogo de produtos +
|
|
3
|
-
* esteira de pedidos.
|
|
4
|
-
*/
|
|
5
|
-
module.exports = {
|
|
6
|
-
ecosystem: { role: "member" },
|
|
7
|
-
activation: { enabled: true, configurationVersion: 1, fields: [] },
|
|
8
|
-
name: "__NAME__",
|
|
9
|
-
slug: "__SLUG__",
|
|
10
|
-
|
|
11
|
-
modules: {
|
|
12
|
-
collections: true,
|
|
13
|
-
documents: false,
|
|
14
|
-
pipelines: true,
|
|
15
|
-
integrations: false,
|
|
16
|
-
omie: false,
|
|
17
|
-
assistants: false,
|
|
18
|
-
currencies: false,
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
domain: {
|
|
22
|
-
models: "src/models",
|
|
23
|
-
validations: "src/validations",
|
|
24
|
-
triggers: "src/triggers",
|
|
25
|
-
hooks: "src/hooks",
|
|
26
|
-
mappings: "src/mappings",
|
|
27
|
-
documents: "src/documents",
|
|
28
|
-
pipelines: "src/pipelines",
|
|
29
|
-
integrations: "src/integrations",
|
|
30
|
-
routes: "src/routes",
|
|
31
|
-
},
|
|
32
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Pedido do marketplace. O campo `status` define as colunas da esteira de
|
|
5
|
-
* fulfillment renderizada pelo front (CorePipeline).
|
|
6
|
-
*/
|
|
7
|
-
defineModel({
|
|
8
|
-
name: "Pedido",
|
|
9
|
-
singular: "pedido",
|
|
10
|
-
basePath: "/pedidos",
|
|
11
|
-
schema: {
|
|
12
|
-
numero: fields.string({ required: true, label: "Número" }),
|
|
13
|
-
cliente: fields.string({ label: "Cliente" }),
|
|
14
|
-
total: fields.currency({ label: "Total" }),
|
|
15
|
-
dataPedido: fields.date({ label: "Data" }),
|
|
16
|
-
status: fields.enum(
|
|
17
|
-
["novo", "pago", "separacao", "enviado", "entregue", "cancelado"],
|
|
18
|
-
{ default: "novo", label: "Status" }
|
|
19
|
-
),
|
|
20
|
-
},
|
|
21
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
22
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/** Produto do catálogo do marketplace. */
|
|
4
|
-
defineModel({
|
|
5
|
-
name: "Produto",
|
|
6
|
-
singular: "produto",
|
|
7
|
-
basePath: "/produtos",
|
|
8
|
-
schema: {
|
|
9
|
-
nome: fields.string({ required: true, label: "Produto" }),
|
|
10
|
-
sku: fields.string({ label: "SKU" }),
|
|
11
|
-
preco: fields.currency({ label: "Preço" }),
|
|
12
|
-
estoque: fields.number({ label: "Estoque", default: 0 }),
|
|
13
|
-
status: fields.enum(["ativo", "inativo"], { label: "Status", default: "ativo" }),
|
|
14
|
-
},
|
|
15
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
16
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 2,
|
|
3
|
-
"backend": { "metadataUrl": "/core/metadata" },
|
|
4
|
-
"navigation": { "mode": "auto" },
|
|
5
|
-
"collections": [{ "model": "Produto", "mode": "dynamic", "section": "Catálogo" }],
|
|
6
|
-
"pipelines": [
|
|
7
|
-
{ "model": "Pedido", "label": "Pedidos", "stageField": "status", "section": "Operação" }
|
|
8
|
-
],
|
|
9
|
-
"documents": []
|
|
10
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central __NAME__ — template servicos-prestados. Esteira de acompanhamento
|
|
3
|
-
* dos serviços prestados ao cliente.
|
|
4
|
-
*/
|
|
5
|
-
module.exports = {
|
|
6
|
-
ecosystem: { role: "member" },
|
|
7
|
-
activation: { enabled: true, configurationVersion: 1, fields: [] },
|
|
8
|
-
name: "__NAME__",
|
|
9
|
-
slug: "__SLUG__",
|
|
10
|
-
|
|
11
|
-
modules: {
|
|
12
|
-
collections: true,
|
|
13
|
-
documents: false,
|
|
14
|
-
pipelines: true,
|
|
15
|
-
integrations: false,
|
|
16
|
-
omie: false,
|
|
17
|
-
assistants: false,
|
|
18
|
-
currencies: false,
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
domain: {
|
|
22
|
-
models: "src/models",
|
|
23
|
-
validations: "src/validations",
|
|
24
|
-
triggers: "src/triggers",
|
|
25
|
-
hooks: "src/hooks",
|
|
26
|
-
mappings: "src/mappings",
|
|
27
|
-
documents: "src/documents",
|
|
28
|
-
pipelines: "src/pipelines",
|
|
29
|
-
integrations: "src/integrations",
|
|
30
|
-
routes: "src/routes",
|
|
31
|
-
},
|
|
32
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/** Cliente a quem os serviços são prestados. */
|
|
4
|
-
defineModel({
|
|
5
|
-
name: "Cliente",
|
|
6
|
-
singular: "cliente",
|
|
7
|
-
basePath: "/clientes",
|
|
8
|
-
schema: {
|
|
9
|
-
nome: fields.string({ required: true, label: "Nome" }),
|
|
10
|
-
email: fields.string({ label: "E-mail" }),
|
|
11
|
-
documento: fields.string({ label: "Documento" }),
|
|
12
|
-
status: fields.enum(["ativo", "inativo"], { label: "Status", default: "ativo" }),
|
|
13
|
-
},
|
|
14
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Serviço prestado a um Cliente. O campo `etapa` define as colunas da esteira
|
|
5
|
-
* renderizada pelo front (CorePipeline).
|
|
6
|
-
*/
|
|
7
|
-
defineModel({
|
|
8
|
-
name: "ServicoPrestado",
|
|
9
|
-
singular: "servicoPrestado",
|
|
10
|
-
basePath: "/servicos-prestados",
|
|
11
|
-
schema: {
|
|
12
|
-
descricao: fields.string({ required: true, label: "Descrição" }),
|
|
13
|
-
cliente: fields.ref("Cliente", { required: true, label: "Cliente" }),
|
|
14
|
-
valor: fields.currency({ label: "Valor" }),
|
|
15
|
-
dataInicio: fields.date({ label: "Início" }),
|
|
16
|
-
etapa: fields.enum(["proposta", "em-execucao", "entregue", "faturado", "cancelado"], {
|
|
17
|
-
default: "proposta",
|
|
18
|
-
label: "Etapa",
|
|
19
|
-
}),
|
|
20
|
-
},
|
|
21
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
22
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 2,
|
|
3
|
-
"backend": { "metadataUrl": "/core/metadata" },
|
|
4
|
-
"navigation": { "mode": "auto" },
|
|
5
|
-
"collections": [{ "model": "Cliente", "mode": "dynamic", "section": "Cadastros" }],
|
|
6
|
-
"pipelines": [
|
|
7
|
-
{ "model": "ServicoPrestado", "label": "Serviços prestados", "stageField": "etapa", "section": "Operação" }
|
|
8
|
-
],
|
|
9
|
-
"documents": []
|
|
10
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central __NAME__ — template servicos-tomados. Liga o módulo de esteiras
|
|
3
|
-
* (pipelines) do Core para acompanhar o processamento dos serviços.
|
|
4
|
-
*/
|
|
5
|
-
module.exports = {
|
|
6
|
-
ecosystem: { role: "member" },
|
|
7
|
-
activation: { enabled: true, configurationVersion: 1, fields: [] },
|
|
8
|
-
name: "__NAME__",
|
|
9
|
-
slug: "__SLUG__",
|
|
10
|
-
|
|
11
|
-
modules: {
|
|
12
|
-
collections: true,
|
|
13
|
-
documents: false,
|
|
14
|
-
pipelines: true,
|
|
15
|
-
integrations: false,
|
|
16
|
-
omie: false,
|
|
17
|
-
assistants: false,
|
|
18
|
-
currencies: false,
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
domain: {
|
|
22
|
-
models: "src/models",
|
|
23
|
-
validations: "src/validations",
|
|
24
|
-
triggers: "src/triggers",
|
|
25
|
-
hooks: "src/hooks",
|
|
26
|
-
mappings: "src/mappings",
|
|
27
|
-
documents: "src/documents",
|
|
28
|
-
pipelines: "src/pipelines",
|
|
29
|
-
integrations: "src/integrations",
|
|
30
|
-
routes: "src/routes",
|
|
31
|
-
},
|
|
32
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/** Prestador de serviço. */
|
|
4
|
-
defineModel({
|
|
5
|
-
name: "Pessoa",
|
|
6
|
-
singular: "pessoa",
|
|
7
|
-
basePath: "/pessoas",
|
|
8
|
-
schema: {
|
|
9
|
-
nome: fields.string({ required: true, label: "Nome" }),
|
|
10
|
-
email: fields.string({ label: "E-mail" }),
|
|
11
|
-
documento: fields.string({ label: "Documento" }),
|
|
12
|
-
status: fields.enum(["ativo", "inativo"], { label: "Status", default: "ativo" }),
|
|
13
|
-
},
|
|
14
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
const { defineModel, fields } = require("@oondemand/oon-core-back");
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Serviço tomado, vinculado a uma Pessoa. O campo `statusProcessamento` define
|
|
5
|
-
* as colunas da esteira renderizada pelo front (CorePipeline).
|
|
6
|
-
*/
|
|
7
|
-
defineModel({
|
|
8
|
-
name: "Servico",
|
|
9
|
-
singular: "servico",
|
|
10
|
-
basePath: "/servicos",
|
|
11
|
-
schema: {
|
|
12
|
-
descricao: fields.string({ required: true, label: "Descrição" }),
|
|
13
|
-
pessoa: fields.ref("Pessoa", { required: true, label: "Prestador" }),
|
|
14
|
-
valor: fields.currency({ label: "Valor" }),
|
|
15
|
-
dataContratacao: fields.date({ label: "Contratação" }),
|
|
16
|
-
statusProcessamento: fields.enum(
|
|
17
|
-
["aberto", "pendente", "processando", "pago", "cancelado"],
|
|
18
|
-
{ default: "aberto", label: "Etapa" }
|
|
19
|
-
),
|
|
20
|
-
},
|
|
21
|
-
crud: { enabled: true, roles: { write: ["admin"] } },
|
|
22
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 2,
|
|
3
|
-
"backend": { "metadataUrl": "/core/metadata" },
|
|
4
|
-
"navigation": { "mode": "auto" },
|
|
5
|
-
"collections": [{ "model": "Pessoa", "label": "Prestadores", "mode": "dynamic", "section": "Cadastros" }],
|
|
6
|
-
"pipelines": [
|
|
7
|
-
{ "model": "Servico", "label": "Serviços tomados", "stageField": "statusProcessamento", "section": "Operação" }
|
|
8
|
-
],
|
|
9
|
-
"documents": []
|
|
10
|
-
}
|