@designliquido/delegua-entidades 0.0.0

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 (206) hide show
  1. package/README.md +96 -0
  2. package/fontes/analisador-dicas.d.ts +49 -0
  3. package/fontes/analisador-dicas.d.ts.map +1 -0
  4. package/fontes/analisador-dicas.js +145 -0
  5. package/fontes/analisador-dicas.js.map +1 -0
  6. package/fontes/cache-consultas.d.ts +39 -0
  7. package/fontes/cache-consultas.d.ts.map +1 -0
  8. package/fontes/cache-consultas.js +98 -0
  9. package/fontes/cache-consultas.js.map +1 -0
  10. package/fontes/carregador-lotes.d.ts +64 -0
  11. package/fontes/carregador-lotes.d.ts.map +1 -0
  12. package/fontes/carregador-lotes.js +148 -0
  13. package/fontes/carregador-lotes.js.map +1 -0
  14. package/fontes/carregador-preguicoso.d.ts +34 -0
  15. package/fontes/carregador-preguicoso.d.ts.map +1 -0
  16. package/fontes/carregador-preguicoso.js +157 -0
  17. package/fontes/carregador-preguicoso.js.map +1 -0
  18. package/fontes/colecao.d.ts +74 -0
  19. package/fontes/colecao.d.ts.map +1 -0
  20. package/fontes/colecao.js +374 -0
  21. package/fontes/colecao.js.map +1 -0
  22. package/fontes/construtor-consulta.d.ts +129 -0
  23. package/fontes/construtor-consulta.d.ts.map +1 -0
  24. package/fontes/construtor-consulta.js +446 -0
  25. package/fontes/construtor-consulta.js.map +1 -0
  26. package/fontes/contexto-entidades.d.ts +119 -0
  27. package/fontes/contexto-entidades.d.ts.map +1 -0
  28. package/fontes/contexto-entidades.js +329 -0
  29. package/fontes/contexto-entidades.js.map +1 -0
  30. package/fontes/detector-n-mais-um.d.ts +87 -0
  31. package/fontes/detector-n-mais-um.d.ts.map +1 -0
  32. package/fontes/detector-n-mais-um.js +225 -0
  33. package/fontes/detector-n-mais-um.js.map +1 -0
  34. package/fontes/entidade.d.ts +82 -0
  35. package/fontes/entidade.d.ts.map +1 -0
  36. package/fontes/entidade.js +467 -0
  37. package/fontes/entidade.js.map +1 -0
  38. package/fontes/erros/erro-concorrencia.d.ts +11 -0
  39. package/fontes/erros/erro-concorrencia.d.ts.map +1 -0
  40. package/fontes/erros/erro-concorrencia.js +18 -0
  41. package/fontes/erros/erro-concorrencia.js.map +1 -0
  42. package/fontes/erros/erro-tabela-nao-encontrada.d.ts +4 -0
  43. package/fontes/erros/erro-tabela-nao-encontrada.d.ts.map +1 -0
  44. package/fontes/erros/erro-tabela-nao-encontrada.js +11 -0
  45. package/fontes/erros/erro-tabela-nao-encontrada.js.map +1 -0
  46. package/fontes/erros/erro-validacao.d.ts +9 -0
  47. package/fontes/erros/erro-validacao.d.ts.map +1 -0
  48. package/fontes/erros/erro-validacao.js +13 -0
  49. package/fontes/erros/erro-validacao.js.map +1 -0
  50. package/fontes/erros/index.d.ts +4 -0
  51. package/fontes/erros/index.d.ts.map +1 -0
  52. package/fontes/erros/index.js +20 -0
  53. package/fontes/erros/index.js.map +1 -0
  54. package/fontes/gerenciador-cache.d.ts +87 -0
  55. package/fontes/gerenciador-cache.d.ts.map +1 -0
  56. package/fontes/gerenciador-cache.js +147 -0
  57. package/fontes/gerenciador-cache.js.map +1 -0
  58. package/fontes/ilc/gerador-definicoes.d.ts +13 -0
  59. package/fontes/ilc/gerador-definicoes.d.ts.map +1 -0
  60. package/fontes/ilc/gerador-definicoes.js +96 -0
  61. package/fontes/ilc/gerador-definicoes.js.map +1 -0
  62. package/fontes/ilc/gerador-entidades.d.ts +10 -0
  63. package/fontes/ilc/gerador-entidades.d.ts.map +1 -0
  64. package/fontes/ilc/gerador-entidades.js +318 -0
  65. package/fontes/ilc/gerador-entidades.js.map +1 -0
  66. package/fontes/ilc/leitor-configuracao.d.ts +32 -0
  67. package/fontes/ilc/leitor-configuracao.d.ts.map +1 -0
  68. package/fontes/ilc/leitor-configuracao.js +124 -0
  69. package/fontes/ilc/leitor-configuracao.js.map +1 -0
  70. package/fontes/ilc/migracoes.d.ts +3 -0
  71. package/fontes/ilc/migracoes.d.ts.map +1 -0
  72. package/fontes/ilc/migracoes.js +215 -0
  73. package/fontes/ilc/migracoes.js.map +1 -0
  74. package/fontes/ilc/semeadura.d.ts +2 -0
  75. package/fontes/ilc/semeadura.d.ts.map +1 -0
  76. package/fontes/ilc/semeadura.js +50 -0
  77. package/fontes/ilc/semeadura.js.map +1 -0
  78. package/fontes/indicadores-performance/executor-analise-performance.d.ts +80 -0
  79. package/fontes/indicadores-performance/executor-analise-performance.d.ts.map +1 -0
  80. package/fontes/indicadores-performance/executor-analise-performance.js +212 -0
  81. package/fontes/indicadores-performance/executor-analise-performance.js.map +1 -0
  82. package/fontes/indicadores-performance/index.d.ts +26 -0
  83. package/fontes/indicadores-performance/index.d.ts.map +1 -0
  84. package/fontes/indicadores-performance/index.js +199 -0
  85. package/fontes/indicadores-performance/index.js.map +1 -0
  86. package/fontes/interfaces-tipos/analise-n1-interface.d.ts +13 -0
  87. package/fontes/interfaces-tipos/analise-n1-interface.d.ts.map +1 -0
  88. package/fontes/interfaces-tipos/analise-n1-interface.js +3 -0
  89. package/fontes/interfaces-tipos/analise-n1-interface.js.map +1 -0
  90. package/fontes/interfaces-tipos/atributo-interface.d.ts +30 -0
  91. package/fontes/interfaces-tipos/atributo-interface.d.ts.map +1 -0
  92. package/fontes/interfaces-tipos/atributo-interface.js +3 -0
  93. package/fontes/interfaces-tipos/atributo-interface.js.map +1 -0
  94. package/fontes/interfaces-tipos/coluna-computada-interface.d.ts +16 -0
  95. package/fontes/interfaces-tipos/coluna-computada-interface.d.ts.map +1 -0
  96. package/fontes/interfaces-tipos/coluna-computada-interface.js +3 -0
  97. package/fontes/interfaces-tipos/coluna-computada-interface.js.map +1 -0
  98. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts +48 -0
  99. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts.map +1 -0
  100. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js +3 -0
  101. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js.map +1 -0
  102. package/fontes/interfaces-tipos/entidade-interface.d.ts +37 -0
  103. package/fontes/interfaces-tipos/entidade-interface.d.ts.map +1 -0
  104. package/fontes/interfaces-tipos/entidade-interface.js +3 -0
  105. package/fontes/interfaces-tipos/entidade-interface.js.map +1 -0
  106. package/fontes/interfaces-tipos/ganchos.d.ts +12 -0
  107. package/fontes/interfaces-tipos/ganchos.d.ts.map +1 -0
  108. package/fontes/interfaces-tipos/ganchos.js +3 -0
  109. package/fontes/interfaces-tipos/ganchos.js.map +1 -0
  110. package/fontes/interfaces-tipos/index.d.ts +17 -0
  111. package/fontes/interfaces-tipos/index.d.ts.map +1 -0
  112. package/fontes/interfaces-tipos/index.js +33 -0
  113. package/fontes/interfaces-tipos/index.js.map +1 -0
  114. package/fontes/interfaces-tipos/indice-interface.d.ts +16 -0
  115. package/fontes/interfaces-tipos/indice-interface.d.ts.map +1 -0
  116. package/fontes/interfaces-tipos/indice-interface.js +3 -0
  117. package/fontes/interfaces-tipos/indice-interface.js.map +1 -0
  118. package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts +12 -0
  119. package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts.map +1 -0
  120. package/fontes/interfaces-tipos/informacao-consulta-interface.js +3 -0
  121. package/fontes/interfaces-tipos/informacao-consulta-interface.js.map +1 -0
  122. package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts +33 -0
  123. package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts.map +1 -0
  124. package/fontes/interfaces-tipos/muito-para-muitos-interface.js +3 -0
  125. package/fontes/interfaces-tipos/muito-para-muitos-interface.js.map +1 -0
  126. package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts +14 -0
  127. package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts.map +1 -0
  128. package/fontes/interfaces-tipos/opcoes-serializacao-interface.js +3 -0
  129. package/fontes/interfaces-tipos/opcoes-serializacao-interface.js.map +1 -0
  130. package/fontes/interfaces-tipos/polimorfico-interface.d.ts +32 -0
  131. package/fontes/interfaces-tipos/polimorfico-interface.d.ts.map +1 -0
  132. package/fontes/interfaces-tipos/polimorfico-interface.js +3 -0
  133. package/fontes/interfaces-tipos/polimorfico-interface.js.map +1 -0
  134. package/fontes/interfaces-tipos/relacionamento-interface.d.ts +23 -0
  135. package/fontes/interfaces-tipos/relacionamento-interface.d.ts.map +1 -0
  136. package/fontes/interfaces-tipos/relacionamento-interface.js +3 -0
  137. package/fontes/interfaces-tipos/relacionamento-interface.js.map +1 -0
  138. package/fontes/interfaces-tipos/restricao-interface.d.ts +14 -0
  139. package/fontes/interfaces-tipos/restricao-interface.d.ts.map +1 -0
  140. package/fontes/interfaces-tipos/restricao-interface.js +3 -0
  141. package/fontes/interfaces-tipos/restricao-interface.js.map +1 -0
  142. package/fontes/interfaces-tipos/semente-interface.d.ts +7 -0
  143. package/fontes/interfaces-tipos/semente-interface.d.ts.map +1 -0
  144. package/fontes/interfaces-tipos/semente-interface.js +3 -0
  145. package/fontes/interfaces-tipos/semente-interface.js.map +1 -0
  146. package/fontes/interfaces-tipos/tabela-interface.d.ts +12 -0
  147. package/fontes/interfaces-tipos/tabela-interface.d.ts.map +1 -0
  148. package/fontes/interfaces-tipos/tabela-interface.js +3 -0
  149. package/fontes/interfaces-tipos/tabela-interface.js.map +1 -0
  150. package/fontes/interfaces-tipos/transacao-interface.d.ts +35 -0
  151. package/fontes/interfaces-tipos/transacao-interface.d.ts.map +1 -0
  152. package/fontes/interfaces-tipos/transacao-interface.js +3 -0
  153. package/fontes/interfaces-tipos/transacao-interface.js.map +1 -0
  154. package/fontes/migracoes/executor-migracoes.d.ts +14 -0
  155. package/fontes/migracoes/executor-migracoes.d.ts.map +1 -0
  156. package/fontes/migracoes/executor-migracoes.js +177 -0
  157. package/fontes/migracoes/executor-migracoes.js.map +1 -0
  158. package/fontes/migracoes/gerador-migracoes.d.ts +15 -0
  159. package/fontes/migracoes/gerador-migracoes.d.ts.map +1 -0
  160. package/fontes/migracoes/gerador-migracoes.js +108 -0
  161. package/fontes/migracoes/gerador-migracoes.js.map +1 -0
  162. package/fontes/migracoes/migracao.d.ts +35 -0
  163. package/fontes/migracoes/migracao.d.ts.map +1 -0
  164. package/fontes/migracoes/migracao.js +66 -0
  165. package/fontes/migracoes/migracao.js.map +1 -0
  166. package/fontes/migracoes/semeador.d.ts +18 -0
  167. package/fontes/migracoes/semeador.d.ts.map +1 -0
  168. package/fontes/migracoes/semeador.js +109 -0
  169. package/fontes/migracoes/semeador.js.map +1 -0
  170. package/fontes/rastreador-mudancas.d.ts +27 -0
  171. package/fontes/rastreador-mudancas.d.ts.map +1 -0
  172. package/fontes/rastreador-mudancas.js +94 -0
  173. package/fontes/rastreador-mudancas.js.map +1 -0
  174. package/fontes/relacionamento.d.ts +11 -0
  175. package/fontes/relacionamento.d.ts.map +1 -0
  176. package/fontes/relacionamento.js +15 -0
  177. package/fontes/relacionamento.js.map +1 -0
  178. package/fontes/roteador-bancos.d.ts +50 -0
  179. package/fontes/roteador-bancos.d.ts.map +1 -0
  180. package/fontes/roteador-bancos.js +90 -0
  181. package/fontes/roteador-bancos.js.map +1 -0
  182. package/fontes/serializador.d.ts +46 -0
  183. package/fontes/serializador.d.ts.map +1 -0
  184. package/fontes/serializador.js +79 -0
  185. package/fontes/serializador.js.map +1 -0
  186. package/fontes/taquigrafia.d.ts +41 -0
  187. package/fontes/taquigrafia.d.ts.map +1 -0
  188. package/fontes/taquigrafia.js +96 -0
  189. package/fontes/taquigrafia.js.map +1 -0
  190. package/fontes/tipos.d.ts +3 -0
  191. package/fontes/tipos.d.ts.map +1 -0
  192. package/fontes/tipos.js +3 -0
  193. package/fontes/tipos.js.map +1 -0
  194. package/fontes/transacao.d.ts +81 -0
  195. package/fontes/transacao.d.ts.map +1 -0
  196. package/fontes/transacao.js +243 -0
  197. package/fontes/transacao.js.map +1 -0
  198. package/fontes/validacoes/validador.d.ts +19 -0
  199. package/fontes/validacoes/validador.d.ts.map +1 -0
  200. package/fontes/validacoes/validador.js +157 -0
  201. package/fontes/validacoes/validador.js.map +1 -0
  202. package/index.d.ts +36 -0
  203. package/index.d.ts.map +1 -0
  204. package/index.js +59 -0
  205. package/index.js.map +1 -0
  206. package/package.json +55 -0
@@ -0,0 +1,446 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConstrutorConsulta = void 0;
4
+ const lincones_js_1 = require("@designliquido/lincones-js");
5
+ /**
6
+ * Construtor de consultas fluente para entidades.
7
+ * Permite encadear condições, ordenações, limites e deslocamentos.
8
+ */
9
+ class ConstrutorConsulta {
10
+ constructor(entidade, tecnologia) {
11
+ this.entidade = entidade;
12
+ this.tecnologia = tecnologia;
13
+ this.tradutor = new lincones_js_1.TradutorSqlAnsi();
14
+ this._tabela = entidade.obterNome();
15
+ this._colunas = entidade.obterNomesColunas();
16
+ this._condicoes = [];
17
+ this._condicoesOu = [];
18
+ this._condicoesSqlExtras = [];
19
+ this._condicoesOuSqlExtras = [];
20
+ this._ordenacoes = [];
21
+ this._limite = null;
22
+ this._deslocamento = null;
23
+ this._juncoes = [];
24
+ this._colunasPersonalizadas = false;
25
+ this._relacionadosParaCarregar = [];
26
+ this._agrupamentos = [];
27
+ this._condicoesTendo = [];
28
+ this._incluirExcluidos = false;
29
+ }
30
+ /**
31
+ * Adiciona uma condição WHERE (AND).
32
+ */
33
+ onde(coluna, operador, valor) {
34
+ // Operadores que lincones-js não suporta - gerar SQL manualmente
35
+ const operadoresNovos = ['DIFERENTE', 'COMO', 'NAO_COMO', 'NAO_EM', 'COMECA_COM', 'TERMINA_COM', 'CONTEM', 'ENTRE', 'NULO', 'NAO_NULO'];
36
+ if (operadoresNovos.includes(operador)) {
37
+ const condicao = this.criarCondicao(coluna, operador, valor);
38
+ this._condicoesSqlExtras.push(this.traduzirCondicaoParaSql(condicao));
39
+ return this;
40
+ }
41
+ if (operador === 'EM' && valor instanceof ConstrutorConsulta) {
42
+ this._condicoesSqlExtras.push(`${coluna} IN (${valor.gerarSql()})`);
43
+ return this;
44
+ }
45
+ this._condicoes.push(this.criarCondicao(coluna, operador, valor));
46
+ return this;
47
+ }
48
+ /**
49
+ * Adiciona mais uma condição AND.
50
+ */
51
+ e(coluna, operador, valor) {
52
+ return this.onde(coluna, operador, valor);
53
+ }
54
+ /**
55
+ * Adiciona uma condição OR. Internamente cria um grupo separado de condições.
56
+ */
57
+ ou(coluna, operador, valor) {
58
+ // Operadores que lincones-js não suporta - gerar SQL manualmente
59
+ const operadoresNovos = ['DIFERENTE', 'COMO', 'NAO_COMO', 'NAO_EM', 'COMECA_COM', 'TERMINA_COM', 'CONTEM', 'ENTRE', 'NULO', 'NAO_NULO'];
60
+ if (operadoresNovos.includes(operador)) {
61
+ const condicao = this.criarCondicao(coluna, operador, valor);
62
+ this._condicoesOuSqlExtras.push(this.traduzirCondicaoParaSql(condicao));
63
+ return this;
64
+ }
65
+ if (operador === 'EM' && valor instanceof ConstrutorConsulta) {
66
+ this._condicoesOuSqlExtras.push(`${coluna} IN (${valor.gerarSql()})`);
67
+ return this;
68
+ }
69
+ this._condicoesOu.push([this.criarCondicao(coluna, operador, valor)]);
70
+ return this;
71
+ }
72
+ /**
73
+ * Define as colunas a serem selecionadas.
74
+ */
75
+ selecionar(...colunas) {
76
+ this._colunas = colunas;
77
+ this._colunasPersonalizadas = true;
78
+ return this;
79
+ }
80
+ /**
81
+ * Adiciona uma ordenação.
82
+ */
83
+ ordenarPor(coluna, direcao = 'ASC') {
84
+ this._ordenacoes.push({ coluna, direcao });
85
+ return this;
86
+ }
87
+ /**
88
+ * Define o limite de registros retornados.
89
+ */
90
+ limite(valor) {
91
+ this._limite = valor;
92
+ return this;
93
+ }
94
+ /**
95
+ * Define o deslocamento (offset) dos registros.
96
+ */
97
+ deslocamento(valor) {
98
+ this._deslocamento = valor;
99
+ return this;
100
+ }
101
+ /**
102
+ * Define colunas para agrupamento (GROUP BY).
103
+ */
104
+ agruparPor(...colunas) {
105
+ this._agrupamentos.push(...colunas);
106
+ return this;
107
+ }
108
+ /**
109
+ * Adiciona condição HAVING (AND).
110
+ */
111
+ tendo(coluna, operador, valor) {
112
+ this._condicoesTendo.push(this.criarCondicao(coluna, operador, valor));
113
+ return this;
114
+ }
115
+ /**
116
+ * Adiciona uma junção (JOIN) a partir do nome de um relacionamento definido na entidade.
117
+ * Os relacionamentos são detectados pelos decoradores @temUm, @temMuitos e @pertenceA.
118
+ */
119
+ incluir(nomeRelacionamento) {
120
+ const relacionamentos = this.entidade.obterRelacionamentos();
121
+ const rel = relacionamentos.find(r => r.nomePropriedade === nomeRelacionamento);
122
+ if (!rel) {
123
+ throw new Error(`Relacionamento '${nomeRelacionamento}' não encontrado na entidade '${this.entidade.obterNome()}'.`);
124
+ }
125
+ const tipoJuncao = rel.tipo === 'pertenceA' ? 'INTERNA' : 'ESQUERDA';
126
+ const juncao = new lincones_js_1.Juncao(tipoJuncao, rel.entidadeDestino, [new lincones_js_1.Condicao(new lincones_js_1.ReferenciaColuna(`${this._tabela}.${rel.colunaOrigem}`), 'IGUAL', new lincones_js_1.ReferenciaColuna(`${rel.entidadeDestino}.${rel.colunaDestino}`))]);
127
+ this._juncoes.push(juncao);
128
+ return this;
129
+ }
130
+ /**
131
+ * Adiciona uma junção (JOIN) diretamente com um objeto Juncao.
132
+ */
133
+ incluirJuncao(juncao) {
134
+ this._juncoes.push(juncao);
135
+ return this;
136
+ }
137
+ /**
138
+ * Usa uma subconsulta como fonte (FROM).
139
+ */
140
+ deSubconsulta(subconsulta, alias) {
141
+ this._tabela = `(${subconsulta.gerarSql()}) AS ${alias}`;
142
+ return this;
143
+ }
144
+ /**
145
+ * Marca relacionamentos para carregamento antecipado (eager loading).
146
+ * Os dados relacionados serão carregados em consultas separadas e anexados aos registros pai.
147
+ */
148
+ incluirRelacionados(...nomes) {
149
+ this._relacionadosParaCarregar.push(...nomes);
150
+ return this;
151
+ }
152
+ /**
153
+ * Inclui registros com exclusão lógica (soft-deleted) na consulta.
154
+ * Por padrão, registros com exclusão lógica são filtrados automaticamente.
155
+ */
156
+ incluirExcluidos() {
157
+ this._incluirExcluidos = true;
158
+ return this;
159
+ }
160
+ /**
161
+ * Executa a consulta e retorna todos os registros encontrados.
162
+ */
163
+ async todos() {
164
+ const sql = this.gerarSql();
165
+ const resultados = await this.tecnologia.executar(null, sql, []);
166
+ if (resultados.length === 0 || resultados[0].linhasRetornadas.length === 0) {
167
+ return [];
168
+ }
169
+ const registros = this.entidade.hidratarRegistros(resultados[0].linhasRetornadas);
170
+ // Carregamento antecipado de relacionamentos
171
+ if (this._relacionadosParaCarregar.length > 0) {
172
+ await this.carregarRelacionados(registros);
173
+ }
174
+ return registros;
175
+ }
176
+ /**
177
+ * Executa a consulta e retorna o primeiro registro ou null.
178
+ */
179
+ async primeiro() {
180
+ this._limite = 1;
181
+ const resultados = await this.todos();
182
+ return resultados.length > 0 ? resultados[0] : null;
183
+ }
184
+ /**
185
+ * Executa a consulta e retorna a contagem de registros.
186
+ */
187
+ async contar() {
188
+ return this.executarAgregacao('COUNT', null, 'contagem');
189
+ }
190
+ /**
191
+ * Executa agregacao SUM.
192
+ */
193
+ async somar(coluna) {
194
+ return this.executarAgregacao('SUM', coluna, 'soma');
195
+ }
196
+ /**
197
+ * Executa agregacao AVG.
198
+ */
199
+ async media(coluna) {
200
+ return this.executarAgregacao('AVG', coluna, 'media');
201
+ }
202
+ /**
203
+ * Executa agregacao MIN.
204
+ */
205
+ async minimo(coluna) {
206
+ return this.executarAgregacao('MIN', coluna, 'minimo');
207
+ }
208
+ /**
209
+ * Executa agregacao MAX.
210
+ */
211
+ async maximo(coluna) {
212
+ return this.executarAgregacao('MAX', coluna, 'maximo');
213
+ }
214
+ /**
215
+ * Gera o SQL completo da consulta.
216
+ */
217
+ gerarSql() {
218
+ const todasCondicoes = [...this._condicoes];
219
+ const tudo = !this._colunasPersonalizadas && todasCondicoes.length === 0 && this._condicoesOu.length === 0;
220
+ const comandoSelecionar = new lincones_js_1.Selecionar(-1, this._tabela, this._colunas, todasCondicoes, tudo, this._juncoes);
221
+ let sql = this.tradutor.traduzir([comandoSelecionar]);
222
+ // Adicionar condições extras (AND) para subqueries
223
+ if (this._condicoesSqlExtras.length > 0) {
224
+ const extras = this._condicoesSqlExtras.join(' AND ');
225
+ if (sql.includes('WHERE')) {
226
+ sql += `\nAND ${extras}`;
227
+ }
228
+ else {
229
+ sql += `\nWHERE ${extras}`;
230
+ }
231
+ }
232
+ // Adicionar condições OR manualmente
233
+ if (this._condicoesOu.length > 0) {
234
+ const partesOu = this._condicoesOu.map(grupo => {
235
+ return grupo.map(c => this.traduzirCondicaoParaSql(c)).join(' AND ');
236
+ });
237
+ if (todasCondicoes.length > 0) {
238
+ sql += '\nOR ' + partesOu.join('\nOR ');
239
+ }
240
+ else {
241
+ // Se não há condições AND, precisamos adicionar WHERE
242
+ if (!sql.includes('WHERE')) {
243
+ sql += '\nWHERE ' + partesOu.join('\nOR ');
244
+ }
245
+ else {
246
+ sql += '\nOR ' + partesOu.join('\nOR ');
247
+ }
248
+ }
249
+ }
250
+ if (this._condicoesOuSqlExtras.length > 0) {
251
+ const partesOuExtras = this._condicoesOuSqlExtras.join(' OR ');
252
+ if (sql.includes('WHERE')) {
253
+ sql += `\nOR ${partesOuExtras}`;
254
+ }
255
+ else {
256
+ sql += `\nWHERE ${partesOuExtras}`;
257
+ }
258
+ }
259
+ // Adicionar filtro de exclusão lógica
260
+ if (this.entidade.possuiExclusaoLogica() && !this._incluirExcluidos) {
261
+ const colunaExclusao = this.entidade.obterNomeColunaExclusaoLogica();
262
+ if (sql.includes('WHERE')) {
263
+ sql += `\nAND ${colunaExclusao} IS NULL`;
264
+ }
265
+ else {
266
+ sql += `\nWHERE ${colunaExclusao} IS NULL`;
267
+ }
268
+ }
269
+ // Adicionar GROUP BY
270
+ if (this._agrupamentos.length > 0) {
271
+ const colunasAgrupadas = this._agrupamentos.join(', ');
272
+ sql += `\nGROUP BY ${colunasAgrupadas}`;
273
+ }
274
+ // Adicionar HAVING
275
+ if (this._condicoesTendo.length > 0) {
276
+ const condicoesTendo = this._condicoesTendo
277
+ .map(c => this.traduzirCondicaoParaSql(c))
278
+ .join(' AND ');
279
+ sql += `\nHAVING ${condicoesTendo}`;
280
+ }
281
+ // Adicionar ORDER BY
282
+ if (this._ordenacoes.length > 0) {
283
+ const ordenacoes = this._ordenacoes.map(o => `${o.coluna} ${o.direcao}`).join(', ');
284
+ sql += `\nORDER BY ${ordenacoes}`;
285
+ }
286
+ // Adicionar LIMIT
287
+ if (this._limite !== null) {
288
+ sql += `\nLIMIT ${this._limite}`;
289
+ }
290
+ // Adicionar OFFSET
291
+ if (this._deslocamento !== null) {
292
+ sql += `\nOFFSET ${this._deslocamento}`;
293
+ }
294
+ return sql;
295
+ }
296
+ criarCondicao(coluna, operador, valor) {
297
+ // Operadores especiais que não precisam de valor
298
+ if (operador === 'NULO' || operador === 'NAO_NULO') {
299
+ return new lincones_js_1.Condicao(new lincones_js_1.ReferenciaColuna(coluna), operador, null);
300
+ }
301
+ // Para operadores LIKE (COMO, COMECA_COM, TERMINA_COM, CONTEM)
302
+ if (operador === 'COMECA_COM') {
303
+ valor = `${valor}%`;
304
+ operador = 'COMO';
305
+ }
306
+ else if (operador === 'TERMINA_COM') {
307
+ valor = `%${valor}`;
308
+ operador = 'COMO';
309
+ }
310
+ else if (operador === 'CONTEM') {
311
+ valor = `%${valor}%`;
312
+ operador = 'COMO';
313
+ }
314
+ const tipoLiteral = typeof valor === 'number' ? 'INTEIRO' : 'TEXTO';
315
+ return new lincones_js_1.Condicao(new lincones_js_1.ReferenciaColuna(coluna), operador, new lincones_js_1.Literal(valor, tipoLiteral));
316
+ }
317
+ traduzirCondicaoParaSql(condicao) {
318
+ const operadores = {
319
+ 'IGUAL': '=',
320
+ 'DIFERENTE': '<>',
321
+ 'MAIOR': '>',
322
+ 'MAIOR_IGUAL': '>=',
323
+ 'MENOR': '<',
324
+ 'MENOR_IGUAL': '<=',
325
+ 'EM': 'IN',
326
+ 'NAO_EM': 'NOT IN',
327
+ 'COMO': 'LIKE',
328
+ 'NAO_COMO': 'NOT LIKE',
329
+ 'NULO': 'IS NULL',
330
+ 'NAO_NULO': 'IS NOT NULL'
331
+ };
332
+ const esquerda = condicao.esquerda.nomeColuna;
333
+ const operadorStr = String(condicao.operador);
334
+ const operador = operadores[operadorStr] || '=';
335
+ // Operadores IS NULL e IS NOT NULL não têm parte direita
336
+ if (operadorStr === 'NULO' || operadorStr === 'NAO_NULO') {
337
+ return `${esquerda} ${operador}`;
338
+ }
339
+ const direita = condicao.direita?.valor;
340
+ // Tratamento especial para IN e subconsultas
341
+ if ((operadorStr === 'EM' || operadorStr === 'NAO_EM') && direita instanceof ConstrutorConsulta) {
342
+ return `${esquerda} ${operador} (${direita.gerarSql()})`;
343
+ }
344
+ // Tratamento para IN com array de valores
345
+ if ((operadorStr === 'EM' || operadorStr === 'NAO_EM') && Array.isArray(direita)) {
346
+ const valoresFormatados = direita.map(v => typeof v === 'string' ? `'${v}'` : v).join(', ');
347
+ return `${esquerda} ${operador} (${valoresFormatados})`;
348
+ }
349
+ // Para BETWEEN, espera-se um array [min, max]
350
+ if (operadorStr === 'ENTRE' && Array.isArray(direita) && direita.length === 2) {
351
+ const min = typeof direita[0] === 'string' ? `'${direita[0]}'` : direita[0];
352
+ const max = typeof direita[1] === 'string' ? `'${direita[1]}'` : direita[1];
353
+ return `${esquerda} BETWEEN ${min} AND ${max}`;
354
+ }
355
+ const valorFormatado = typeof direita === 'string' ? `'${direita}'` : direita;
356
+ return `${esquerda} ${operador} ${valorFormatado}`;
357
+ }
358
+ async executarAgregacao(funcao, coluna, alias) {
359
+ const colunasOriginais = this._colunas;
360
+ const colunasPersonalizadasOriginais = this._colunasPersonalizadas;
361
+ const colunasAgregadas = [];
362
+ if (this._agrupamentos.length > 0) {
363
+ colunasAgregadas.push(...this._agrupamentos);
364
+ }
365
+ const alvo = coluna ? `${funcao}(${coluna})` : `${funcao}(*)`;
366
+ colunasAgregadas.push(`${alvo} as ${alias}`);
367
+ this._colunas = colunasAgregadas;
368
+ this._colunasPersonalizadas = true;
369
+ const sql = this.gerarSql();
370
+ this._colunas = colunasOriginais;
371
+ this._colunasPersonalizadas = colunasPersonalizadasOriginais;
372
+ const resultados = await this.tecnologia.executar(null, sql, []);
373
+ if (resultados.length === 0 || resultados[0].linhasRetornadas.length === 0) {
374
+ return this._agrupamentos.length > 0 ? [] : 0;
375
+ }
376
+ if (this._agrupamentos.length > 0) {
377
+ return resultados[0].linhasRetornadas;
378
+ }
379
+ return resultados[0].linhasRetornadas[0][alias] || 0;
380
+ }
381
+ /**
382
+ * Carrega relacionamentos de forma antecipada usando consultas separadas.
383
+ */
384
+ async carregarRelacionados(registros) {
385
+ if (registros.length === 0)
386
+ return;
387
+ const relacionamentos = this.entidade.obterRelacionamentos();
388
+ for (const nomeRelacionamento of this._relacionadosParaCarregar) {
389
+ const rel = relacionamentos.find(r => r.nomePropriedade === nomeRelacionamento);
390
+ if (!rel) {
391
+ throw new Error(`Relacionamento '${nomeRelacionamento}' não encontrado na entidade '${this.entidade.obterNome()}'.`);
392
+ }
393
+ // Coletar valores da coluna de origem dos registros pai
394
+ const valoresOrigem = registros
395
+ .map(r => r.propriedades[rel.colunaOrigem])
396
+ .filter(v => v !== undefined && v !== null);
397
+ if (valoresOrigem.length === 0)
398
+ continue;
399
+ // Construir consulta para entidades relacionadas
400
+ // Como lincones não tem operador IN, usamos múltiplos OR
401
+ const valoresUnicos = Array.from(new Set(valoresOrigem));
402
+ let sqlRelacionados = `SELECT * FROM ${rel.entidadeDestino} WHERE `;
403
+ const condicoes = valoresUnicos.map(valor => {
404
+ const valorFormatado = typeof valor === 'string' ? `'${valor}'` : valor;
405
+ return `${rel.colunaDestino} = ${valorFormatado}`;
406
+ });
407
+ sqlRelacionados += condicoes.join(' OR ');
408
+ const resultadosRelacionados = await this.tecnologia.executar(null, sqlRelacionados, []);
409
+ if (resultadosRelacionados.length === 0 || resultadosRelacionados[0].linhasRetornadas.length === 0) {
410
+ // Nenhum relacionado encontrado, inicializar vazios
411
+ for (const registro of registros) {
412
+ if (rel.tipo === 'temMuitos') {
413
+ registro.propriedades[rel.nomePropriedade] = [];
414
+ }
415
+ else {
416
+ registro.propriedades[rel.nomePropriedade] = null;
417
+ }
418
+ }
419
+ continue;
420
+ }
421
+ const linhasRelacionadas = resultadosRelacionados[0].linhasRetornadas;
422
+ // Agrupar relacionados por valor da coluna de destino
423
+ const relacionadosPorChave = new Map();
424
+ for (const linha of linhasRelacionadas) {
425
+ const chave = linha[rel.colunaDestino];
426
+ if (!relacionadosPorChave.has(chave)) {
427
+ relacionadosPorChave.set(chave, []);
428
+ }
429
+ relacionadosPorChave.get(chave).push(linha);
430
+ }
431
+ // Anexar aos registros pai
432
+ for (const registro of registros) {
433
+ const valorOrigem = registro.propriedades[rel.colunaOrigem];
434
+ const relacionados = relacionadosPorChave.get(valorOrigem) || [];
435
+ if (rel.tipo === 'temMuitos') {
436
+ registro.propriedades[rel.nomePropriedade] = relacionados;
437
+ }
438
+ else if (rel.tipo === 'temUm' || rel.tipo === 'pertenceA') {
439
+ registro.propriedades[rel.nomePropriedade] = relacionados.length > 0 ? relacionados[0] : null;
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+ exports.ConstrutorConsulta = ConstrutorConsulta;
446
+ //# sourceMappingURL=construtor-consulta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construtor-consulta.js","sourceRoot":"","sources":["../../fontes/construtor-consulta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { DescritorTipoClasse, ObjetoDeleguaClasse } from "@designliquido/delegua/interpretador/estruturas";
2
+ import { TecnologiaLinconesInterface } from "@designliquido/lincones-js";
3
+ import { Colecao } from "./colecao";
4
+ import { EntidadeInterface } from "./interfaces-tipos/entidade-interface";
5
+ import { Taquigrafo } from "./taquigrafia";
6
+ import { RastreadorMudancas } from "./rastreador-mudancas";
7
+ import { TransacaoInterface } from "./interfaces-tipos/transacao-interface";
8
+ import { RoteadorBancos } from "./roteador-bancos";
9
+ import { ConfiguracoesBancos } from "./interfaces-tipos/configuracao-banco-dados-interface";
10
+ import { OpcoesCacheL2 } from "./gerenciador-cache";
11
+ /**
12
+ * O contexto de entidades é usado para manter todas as entidades e seus relacionamentos
13
+ * em um só lugar. Suporta múltiplos bancos de dados com roteamento automático.
14
+ * Também gerencia cache L1 (identity map) e L2 (cache persistente).
15
+ */
16
+ export declare class ContextoEntidades {
17
+ tecnologia: TecnologiaLinconesInterface;
18
+ colecoes: {
19
+ [key: string]: Colecao<EntidadeInterface>;
20
+ };
21
+ logger?: Taquigrafo;
22
+ rastreador: RastreadorMudancas;
23
+ private transacao;
24
+ private roteador;
25
+ private cache;
26
+ constructor(tecnologia: TecnologiaLinconesInterface, logger?: Taquigrafo, opcoesCacheL2?: OpcoesCacheL2);
27
+ registrarColecao(entidade: EntidadeInterface): Colecao<EntidadeInterface>;
28
+ colecao(tipoModelo: DescritorTipoClasse): Colecao<EntidadeInterface>;
29
+ novo(nomeEntidade: string, registro: ObjetoDeleguaClasse): void;
30
+ excluirRegistro(nomeEntidade: string, registro: ObjetoDeleguaClasse): void;
31
+ buscarTodos(nomeEntidade: string): Promise<ObjetoDeleguaClasse[]>;
32
+ buscarPorId(nomeEntidade: string, valorId: any): Promise<ObjetoDeleguaClasse | null>;
33
+ salvarMudancas(): Promise<void>;
34
+ /**
35
+ * Processa cascata de inserção para relacionamentos.
36
+ */
37
+ private processarCascataInserir;
38
+ /**
39
+ * Processa cascata de atualização para relacionamentos.
40
+ */
41
+ private processarCascataAtualizar;
42
+ /**
43
+ * Processa cascata de exclusão para relacionamentos.
44
+ */
45
+ private processarCascataExcluir;
46
+ iniciar(caminho: string): Promise<void>;
47
+ /**
48
+ * Inicia uma nova transação.
49
+ * Retorna a transação criada.
50
+ */
51
+ iniciarTransacao(): TransacaoInterface;
52
+ /**
53
+ * Obtém a transação atual, se houver.
54
+ */
55
+ obterTransacao(): TransacaoInterface | null;
56
+ /**
57
+ * Indica se existe uma transação ativa.
58
+ */
59
+ possuiTransacao(): boolean;
60
+ /**
61
+ * Confirma a transação atual.
62
+ */
63
+ confirmarTransacao(): Promise<void>;
64
+ /**
65
+ * Reverte a transação atual.
66
+ */
67
+ reverterTransacao(): Promise<void>;
68
+ /**
69
+ * Registra um novo banco de dados.
70
+ */
71
+ registrarBanco(nome: string, tecnologia: TecnologiaLinconesInterface, ehPadrao?: boolean): void;
72
+ /**
73
+ * Registra múltiplos bancos a partir de configurações.
74
+ */
75
+ registrarBancos(configuracoes: ConfiguracoesBancos, tecnologias: {
76
+ [nome: string]: TecnologiaLinconesInterface;
77
+ }): void;
78
+ /**
79
+ * Obtém a tecnologia para um banco específico.
80
+ */
81
+ obterTecnologia(nomeBanco?: string): TecnologiaLinconesInterface;
82
+ /**
83
+ * Obtém a tecnologia padrão.
84
+ */
85
+ obterTecnologiaPadrao(): TecnologiaLinconesInterface;
86
+ /**
87
+ * Obtém o roteador de bancos para acesso avançado.
88
+ */
89
+ obterRoteador(): RoteadorBancos;
90
+ /**
91
+ * Obtém um registro do cache.
92
+ */
93
+ obterDoCache(nomeEntidade: string, id: any): ObjetoDeleguaClasse | undefined;
94
+ /**
95
+ * Armazena um registro no cache.
96
+ */
97
+ armazenarenCache(nomeEntidade: string, id: any, registro: ObjetoDeleguaClasse): void;
98
+ /**
99
+ * Remove um registro do cache.
100
+ */
101
+ removerDoCache(nomeEntidade: string, id: any): void;
102
+ /**
103
+ * Limpa o cache de uma entidade.
104
+ */
105
+ limparCacheEntidade(nomeEntidade?: string): void;
106
+ /**
107
+ * Limpa todo o cache.
108
+ */
109
+ limparCacheTudo(): void;
110
+ /**
111
+ * Obtém estatísticas do cache.
112
+ */
113
+ obterEstatisticasCache(): {
114
+ nivel1: number;
115
+ nivel2: number;
116
+ total: number;
117
+ };
118
+ }
119
+ //# sourceMappingURL=contexto-entidades.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexto-entidades.d.ts","sourceRoot":"","sources":["../../fontes/contexto-entidades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAA0B,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AACpH,OAAO,EAAoB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,iBAAiB;IAC1B,UAAU,EAAE,2BAA2B,CAAC;IACxC,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;KAAC,CAAC;IACtD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAmB;gBAEpB,UAAU,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,aAAa;IAYvG,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASzE,OAAO,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAUpE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI/D,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IASpE,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAYjE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAYpF,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCrC;;OAEG;YACW,uBAAuB;IAmCrC;;OAEG;YACW,yBAAyB;IA6BvC;;OAEG;YACW,uBAAuB;IAqC/B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB;IAUtC;;OAEG;IACH,cAAc,IAAI,kBAAkB,GAAG,IAAI;IAI3C;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUzC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,2BAA2B,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IAOtG;;OAEG;IACH,eAAe,CAAC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAE,GAAG,IAAI;IAIvH;;OAEG;IACH,eAAe,CAAC,SAAS,GAAE,MAAiB,GAAG,2BAA2B;IAI1E;;OAEG;IACH,qBAAqB,IAAI,2BAA2B;IAIpD;;OAEG;IACH,aAAa,IAAI,cAAc;IAM/B;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,mBAAmB,GAAG,SAAS;IAI5E;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIpF;;OAEG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI;IAInD;;OAEG;IACH,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,sBAAsB,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAG9E"}