"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extruturas_de_campos = exports.visoes = exports.z_contagem_em_pizza = exports.z_contagem_em_barra_vertical = void 0; const zod_1 = require("zod"); const _serie_consultar_1 = require("../_serie_consultar"); // usar describe para definir o tipo de campo para render do componente const z_tipos_campos = zod_1.z.enum([ "tabela", "coluna", "texto", "lista_colunas", "lista_filtros", ]); exports.z_contagem_em_barra_vertical = zod_1.z.object({ tabela: zod_1.z.string(), colanuEixoX: zod_1.z.string(), colunaAgrupamento: zod_1.z.string().array(), filtros: _serie_consultar_1.z_filtro.array(), descricao_pelo_usuario: zod_1.z.string(), }); exports.z_contagem_em_pizza = zod_1.z.object({ tabela: zod_1.z.string(), colanuEixoX: zod_1.z.string(), filtros: _serie_consultar_1.z_filtro.array(), descricao_pelo_usuario: zod_1.z.string(), }); exports.visoes = { z_contagem_em_barra_vertical: exports.z_contagem_em_barra_vertical, z_contagem_em_pizza: exports.z_contagem_em_pizza, }; /** Cria a estrutura de campos para insersão de dados */ exports.extruturas_de_campos = { z_contagem_em_barra_vertical: { visao: "z_contagem_em_barra_vertical", tabela: ({ tabela }) => tabela, descricao: ({ tabela, descricao_pelo_usuario, colanuEixoX, filtros, colunaAgrupamento, }) => { if (String(descricao_pelo_usuario || "").trim()) return String(descricao_pelo_usuario || "").trim(); return `Contagem de ${tabela} por ${colanuEixoX}${!filtros?.length ? "" : `, quando ${filtros .map(({ coluna, operador, valor }) => `${coluna} ${operador} ${valor}`) .join(", ")}`}${!colunaAgrupamento?.length ? "" : `, agrupado por ${colunaAgrupamento.join(", ")}`}.`; }, campos: { colanuEixoX: { tipo_campo: "coluna" }, tabela: { tipo_campo: "tabela" }, colunaAgrupamento: { tipo_campo: "lista_colunas" }, filtros: { tipo_campo: "lista_filtros" }, descricao_pelo_usuario: { tipo_campo: "texto" }, }, }, z_contagem_em_pizza: { visao: "z_contagem_em_pizza", tabela: ({ tabela }) => tabela, descricao: ({ tabela, descricao_pelo_usuario, colanuEixoX, filtros }) => { if (String(descricao_pelo_usuario || "").trim()) return String(descricao_pelo_usuario || "").trim(); return `Contagem de ${tabela} por ${colanuEixoX}${!filtros?.length ? "" : `, quando ${filtros .map(({ coluna, operador, valor }) => `${coluna} ${operador} ${valor}`) .join(", ")}`}.`; }, campos: { colanuEixoX: { tipo_campo: "coluna" }, tabela: { tipo_campo: "tabela" }, filtros: { tipo_campo: "lista_filtros" }, descricao_pelo_usuario: { tipo_campo: "texto" }, }, }, };