vona-module-a-orm 5.0.96 → 5.1.2

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 (367) hide show
  1. package/LICENSE +0 -0
  2. package/cli/entity/metadata/generate.ts +2 -1
  3. package/cli/model/metadata/generate.ts +6 -2
  4. package/cli/model/metadata/magic.ts +15 -6
  5. package/dist/.metadata/index.d.ts +1 -0
  6. package/dist/.metadata/index.d.ts.map +1 -0
  7. package/dist/.metadata/locales.d.ts +1 -0
  8. package/dist/.metadata/locales.d.ts.map +1 -0
  9. package/dist/.metadata/this.d.ts +1 -0
  10. package/dist/.metadata/this.d.ts.map +1 -0
  11. package/dist/bean/aopMethod.transaction.d.ts +2 -1
  12. package/dist/bean/aopMethod.transaction.d.ts.map +1 -0
  13. package/dist/bean/bean.database.d.ts +2 -1
  14. package/dist/bean/bean.database.d.ts.map +1 -0
  15. package/dist/bean/bean.databaseDialectBase.d.ts +2 -1
  16. package/dist/bean/bean.databaseDialectBase.d.ts.map +1 -0
  17. package/dist/bean/bean.model/bean.model_cache.d.ts +5 -1
  18. package/dist/bean/bean.model/bean.model_cache.d.ts.map +1 -0
  19. package/dist/bean/bean.model/bean.model_crud.d.ts +1 -0
  20. package/dist/bean/bean.model/bean.model_crud.d.ts.map +1 -0
  21. package/dist/bean/bean.model/bean.model_crud_inner.d.ts +3 -1
  22. package/dist/bean/bean.model/bean.model_crud_inner.d.ts.map +1 -0
  23. package/dist/bean/bean.model/bean.model_crud_table.d.ts +1 -0
  24. package/dist/bean/bean.model/bean.model_crud_table.d.ts.map +1 -0
  25. package/dist/bean/bean.model/bean.model_knex.d.ts +1 -0
  26. package/dist/bean/bean.model/bean.model_knex.d.ts.map +1 -0
  27. package/dist/bean/bean.model/bean.model_meta.d.ts +3 -2
  28. package/dist/bean/bean.model/bean.model_meta.d.ts.map +1 -0
  29. package/dist/bean/bean.model/bean.model_utils.d.ts +5 -3
  30. package/dist/bean/bean.model/bean.model_utils.d.ts.map +1 -0
  31. package/dist/bean/bean.model/bean.model_view.d.ts +1 -0
  32. package/dist/bean/bean.model/bean.model_view.d.ts.map +1 -0
  33. package/dist/bean/bean.model.d.ts +1 -0
  34. package/dist/bean/bean.model.d.ts.map +1 -0
  35. package/dist/bean/bean.modelBase.d.ts +1 -0
  36. package/dist/bean/bean.modelBase.d.ts.map +1 -0
  37. package/dist/bean/broadcast.columnsClear.d.ts +2 -1
  38. package/dist/bean/broadcast.columnsClear.d.ts.map +1 -0
  39. package/dist/bean/event.clientNameReal.d.ts +2 -1
  40. package/dist/bean/event.clientNameReal.d.ts.map +1 -0
  41. package/dist/bean/event.columnsClear.d.ts +2 -1
  42. package/dist/bean/event.columnsClear.d.ts.map +1 -0
  43. package/dist/bean/hmr.entity.d.ts +1 -0
  44. package/dist/bean/hmr.entity.d.ts.map +1 -0
  45. package/dist/bean/hmr.model.d.ts +1 -0
  46. package/dist/bean/hmr.model.d.ts.map +1 -0
  47. package/dist/bean/queue.doubleDelete.d.ts +2 -1
  48. package/dist/bean/queue.doubleDelete.d.ts.map +1 -0
  49. package/dist/bean/schedule.softDeletionPrune.d.ts +1 -0
  50. package/dist/bean/schedule.softDeletionPrune.d.ts.map +1 -0
  51. package/dist/common/buildWhere.d.ts +1 -0
  52. package/dist/common/buildWhere.d.ts.map +1 -0
  53. package/dist/common/checkWhere.d.ts +1 -0
  54. package/dist/common/checkWhere.d.ts.map +1 -0
  55. package/dist/common/index.d.ts +1 -0
  56. package/dist/common/index.d.ts.map +1 -0
  57. package/dist/common/utils.d.ts +2 -1
  58. package/dist/common/utils.d.ts.map +1 -0
  59. package/dist/config/config.d.ts +1 -0
  60. package/dist/config/config.d.ts.map +1 -0
  61. package/dist/config/errors.d.ts +1 -0
  62. package/dist/config/errors.d.ts.map +1 -0
  63. package/dist/config/locale/en-us.d.ts +1 -0
  64. package/dist/config/locale/en-us.d.ts.map +1 -0
  65. package/dist/config/locale/zh-cn.d.ts +1 -0
  66. package/dist/config/locale/zh-cn.d.ts.map +1 -0
  67. package/dist/extend/index.d.ts +1 -0
  68. package/dist/extend/index.d.ts.map +1 -0
  69. package/dist/extend/schemaBuilder.d.ts +1 -0
  70. package/dist/extend/schemaBuilder.d.ts.map +1 -0
  71. package/dist/extend/tableBuilder.d.ts +1 -0
  72. package/dist/extend/tableBuilder.d.ts.map +1 -0
  73. package/dist/index.d.ts +1 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +94 -15
  76. package/dist/index.js.map +1 -0
  77. package/dist/lib/const.d.ts +1 -0
  78. package/dist/lib/const.d.ts.map +1 -0
  79. package/dist/lib/databaseDialect.d.ts +1 -0
  80. package/dist/lib/databaseDialect.d.ts.map +1 -0
  81. package/dist/lib/dto/dto.d.ts +3 -0
  82. package/dist/lib/dto/dto.d.ts.map +1 -0
  83. package/dist/lib/dto/dtoAggregate.d.ts +3 -2
  84. package/dist/lib/dto/dtoAggregate.d.ts.map +1 -0
  85. package/dist/lib/dto/dtoCreate.d.ts +2 -1
  86. package/dist/lib/dto/dtoCreate.d.ts.map +1 -0
  87. package/dist/lib/dto/dtoGet.d.ts +2 -1
  88. package/dist/lib/dto/dtoGet.d.ts.map +1 -0
  89. package/dist/lib/dto/dtoGroup.d.ts +2 -1
  90. package/dist/lib/dto/dtoGroup.d.ts.map +1 -0
  91. package/dist/lib/dto/dtoListAndCount.d.ts +4 -0
  92. package/dist/lib/dto/dtoListAndCount.d.ts.map +1 -0
  93. package/dist/lib/dto/dtoMutate.d.ts +3 -2
  94. package/dist/lib/dto/dtoMutate.d.ts.map +1 -0
  95. package/dist/lib/dto/dtoQuery.d.ts +1 -0
  96. package/dist/lib/dto/dtoQuery.d.ts.map +1 -0
  97. package/dist/lib/dto/dtoQueryPage.d.ts +1 -0
  98. package/dist/lib/dto/dtoQueryPage.d.ts.map +1 -0
  99. package/dist/lib/dto/dtoSelectAndCount.d.ts +2 -1
  100. package/dist/lib/dto/dtoSelectAndCount.d.ts.map +1 -0
  101. package/dist/lib/dto/dtoUpdate.d.ts +2 -1
  102. package/dist/lib/dto/dtoUpdate.d.ts.map +1 -0
  103. package/dist/lib/dto/index.d.ts +1 -0
  104. package/dist/lib/dto/index.d.ts.map +1 -0
  105. package/dist/lib/entity.d.ts +1 -0
  106. package/dist/lib/entity.d.ts.map +1 -0
  107. package/dist/lib/index.d.ts +1 -0
  108. package/dist/lib/index.d.ts.map +1 -0
  109. package/dist/lib/model.d.ts +1 -0
  110. package/dist/lib/model.d.ts.map +1 -0
  111. package/dist/lib/modelCacheBase.d.ts +2 -1
  112. package/dist/lib/modelCacheBase.d.ts.map +1 -0
  113. package/dist/lib/relations.d.ts +5 -4
  114. package/dist/lib/relations.d.ts.map +1 -0
  115. package/dist/lib/relationsDynamic.d.ts +5 -4
  116. package/dist/lib/relationsDynamic.d.ts.map +1 -0
  117. package/dist/lib/relationsMutate.d.ts +4 -3
  118. package/dist/lib/relationsMutate.d.ts.map +1 -0
  119. package/dist/lib/relationsStatic.d.ts +1 -0
  120. package/dist/lib/relationsStatic.d.ts.map +1 -0
  121. package/dist/lib/utils.d.ts +1 -0
  122. package/dist/lib/utils.d.ts.map +1 -0
  123. package/dist/main.d.ts +2 -1
  124. package/dist/main.d.ts.map +1 -0
  125. package/dist/service/cacheEntity_.d.ts +1 -0
  126. package/dist/service/cacheEntity_.d.ts.map +1 -0
  127. package/dist/service/cacheQuery_.d.ts +1 -0
  128. package/dist/service/cacheQuery_.d.ts.map +1 -0
  129. package/dist/service/columnsCache_.d.ts +2 -1
  130. package/dist/service/columnsCache_.d.ts.map +1 -0
  131. package/dist/service/columns_.d.ts +2 -1
  132. package/dist/service/columns_.d.ts.map +1 -0
  133. package/dist/service/database.d.ts +2 -1
  134. package/dist/service/database.d.ts.map +1 -0
  135. package/dist/service/databaseAsyncLocalStorage_.d.ts +1 -0
  136. package/dist/service/databaseAsyncLocalStorage_.d.ts.map +1 -0
  137. package/dist/service/databaseClient_.d.ts +2 -1
  138. package/dist/service/databaseClient_.d.ts.map +1 -0
  139. package/dist/service/db_.d.ts +2 -1
  140. package/dist/service/db_.d.ts.map +1 -0
  141. package/dist/service/entityResolver_.d.ts +1 -0
  142. package/dist/service/entityResolver_.d.ts.map +1 -0
  143. package/dist/service/modelResolver_.d.ts +1 -0
  144. package/dist/service/modelResolver_.d.ts.map +1 -0
  145. package/dist/service/relations_.d.ts +2 -1
  146. package/dist/service/relations_.d.ts.map +1 -0
  147. package/dist/service/transactionAsyncLocalStorage_.d.ts +1 -0
  148. package/dist/service/transactionAsyncLocalStorage_.d.ts.map +1 -0
  149. package/dist/service/transactionConsistency/342/200/214_.d.ts +1 -0
  150. package/dist/service/transactionConsistency/342/200/214_.d.ts.map +1 -0
  151. package/dist/service/transactionFiber_.d.ts +1 -0
  152. package/dist/service/transactionFiber_.d.ts.map +1 -0
  153. package/dist/service/transactionState_.d.ts +2 -1
  154. package/dist/service/transactionState_.d.ts.map +1 -0
  155. package/dist/service/transaction_.d.ts +2 -1
  156. package/dist/service/transaction_.d.ts.map +1 -0
  157. package/dist/types/columns.d.ts +1 -0
  158. package/dist/types/columns.d.ts.map +1 -0
  159. package/dist/types/config.d.ts +1 -0
  160. package/dist/types/config.d.ts.map +1 -0
  161. package/dist/types/database.d.ts +1 -0
  162. package/dist/types/database.d.ts.map +1 -0
  163. package/dist/types/depth.d.ts +1 -0
  164. package/dist/types/depth.d.ts.map +1 -0
  165. package/dist/types/dialect.d.ts +1 -0
  166. package/dist/types/dialect.d.ts.map +1 -0
  167. package/dist/types/dto/dtoAggregate.d.ts +1 -0
  168. package/dist/types/dto/dtoAggregate.d.ts.map +1 -0
  169. package/dist/types/dto/dtoGet.d.ts +3 -2
  170. package/dist/types/dto/dtoGet.d.ts.map +1 -0
  171. package/dist/types/dto/dtoGroup.d.ts +1 -0
  172. package/dist/types/dto/dtoGroup.d.ts.map +1 -0
  173. package/dist/types/dto/dtoListAndCount.d.ts +8 -0
  174. package/dist/types/dto/dtoListAndCount.d.ts.map +1 -0
  175. package/dist/types/dto/dtoMutate.d.ts +8 -9
  176. package/dist/types/dto/dtoMutate.d.ts.map +1 -0
  177. package/dist/types/dto/dtoQueryBase.d.ts +1 -0
  178. package/dist/types/dto/dtoQueryBase.d.ts.map +1 -0
  179. package/dist/types/dto/dtoQueryPageBase.d.ts +1 -0
  180. package/dist/types/dto/dtoQueryPageBase.d.ts.map +1 -0
  181. package/dist/types/dto/dtoSelectAndCount.d.ts +2 -1
  182. package/dist/types/dto/dtoSelectAndCount.d.ts.map +1 -0
  183. package/dist/types/dto/index.d.ts +2 -0
  184. package/dist/types/dto/index.d.ts.map +1 -0
  185. package/dist/types/entity.d.ts +1 -0
  186. package/dist/types/entity.d.ts.map +1 -0
  187. package/dist/types/entityBase.d.ts +1 -0
  188. package/dist/types/entityBase.d.ts.map +1 -0
  189. package/dist/types/entityBaseEmpty.d.ts +1 -0
  190. package/dist/types/entityBaseEmpty.d.ts.map +1 -0
  191. package/dist/types/entityBaseInner.d.ts +1 -0
  192. package/dist/types/entityBaseInner.d.ts.map +1 -0
  193. package/dist/types/entityBaseSimple.d.ts +1 -0
  194. package/dist/types/entityBaseSimple.d.ts.map +1 -0
  195. package/dist/types/extra.d.ts +1 -0
  196. package/dist/types/extra.d.ts.map +1 -0
  197. package/dist/types/index.d.ts +2 -0
  198. package/dist/types/index.d.ts.map +1 -0
  199. package/dist/types/logger.d.ts +1 -0
  200. package/dist/types/logger.d.ts.map +1 -0
  201. package/dist/types/model.d.ts +3 -2
  202. package/dist/types/model.d.ts.map +1 -0
  203. package/dist/types/modelAggr.d.ts +2 -1
  204. package/dist/types/modelAggr.d.ts.map +1 -0
  205. package/dist/types/modelCount.d.ts +2 -1
  206. package/dist/types/modelCount.d.ts.map +1 -0
  207. package/dist/types/modelGeneral.d.ts +4 -3
  208. package/dist/types/modelGeneral.d.ts.map +1 -0
  209. package/dist/types/modelGroup.d.ts +2 -1
  210. package/dist/types/modelGroup.d.ts.map +1 -0
  211. package/dist/types/modelIncrement.d.ts +19 -0
  212. package/dist/types/modelIncrement.d.ts.map +1 -0
  213. package/dist/types/modelWhere.d.ts +2 -1
  214. package/dist/types/modelWhere.d.ts.map +1 -0
  215. package/dist/types/onion/databaseDialect.d.ts +1 -0
  216. package/dist/types/onion/databaseDialect.d.ts.map +1 -0
  217. package/dist/types/onion/entity.d.ts +1 -0
  218. package/dist/types/onion/entity.d.ts.map +1 -0
  219. package/dist/types/onion/index.d.ts +1 -0
  220. package/dist/types/onion/index.d.ts.map +1 -0
  221. package/dist/types/onion/model.d.ts +1 -0
  222. package/dist/types/onion/model.d.ts.map +1 -0
  223. package/dist/types/onion/table.d.ts +1 -0
  224. package/dist/types/onion/table.d.ts.map +1 -0
  225. package/dist/types/relations.d.ts +10 -11
  226. package/dist/types/relations.d.ts.map +1 -0
  227. package/dist/types/relationsAggr.d.ts +2 -1
  228. package/dist/types/relationsAggr.d.ts.map +1 -0
  229. package/dist/types/relationsColumns.d.ts +5 -4
  230. package/dist/types/relationsColumns.d.ts.map +1 -0
  231. package/dist/types/relationsDef.d.ts +5 -4
  232. package/dist/types/relationsDef.d.ts.map +1 -0
  233. package/dist/types/relationsDefDynamic.d.ts +6 -5
  234. package/dist/types/relationsDefDynamic.d.ts.map +1 -0
  235. package/dist/types/relationsDefMutate.d.ts +1 -0
  236. package/dist/types/relationsDefMutate.d.ts.map +1 -0
  237. package/dist/types/relationsGroup.d.ts +1 -0
  238. package/dist/types/relationsGroup.d.ts.map +1 -0
  239. package/dist/types/relationsMutate.d.ts +4 -3
  240. package/dist/types/relationsMutate.d.ts.map +1 -0
  241. package/dist/types/relationsTables.d.ts +1 -0
  242. package/dist/types/relationsTables.d.ts.map +1 -0
  243. package/dist/types/transaction.d.ts +1 -0
  244. package/dist/types/transaction.d.ts.map +1 -0
  245. package/dist-cli/entity/metadata/generate.js +1 -1
  246. package/dist-cli/model/metadata/generate.js +4 -2
  247. package/dist-cli/model/metadata/magic.js +2 -2
  248. package/package.json +40 -36
  249. package/src/.metadata/index.ts +348 -0
  250. package/src/.metadata/locales.ts +13 -0
  251. package/src/.metadata/this.ts +2 -0
  252. package/src/bean/aopMethod.transaction.ts +18 -0
  253. package/src/bean/bean.database.ts +57 -0
  254. package/src/bean/bean.databaseDialectBase.ts +149 -0
  255. package/src/bean/bean.model/bean.model_cache.ts +815 -0
  256. package/src/bean/bean.model/bean.model_crud.ts +46 -0
  257. package/src/bean/bean.model/bean.model_crud_inner.ts +281 -0
  258. package/src/bean/bean.model/bean.model_crud_table.ts +59 -0
  259. package/src/bean/bean.model/bean.model_knex.ts +60 -0
  260. package/src/bean/bean.model/bean.model_meta.ts +204 -0
  261. package/src/bean/bean.model/bean.model_utils.ts +275 -0
  262. package/src/bean/bean.model/bean.model_view.ts +129 -0
  263. package/src/bean/bean.model.ts +8 -0
  264. package/src/bean/bean.modelBase.ts +8 -0
  265. package/src/bean/broadcast.columnsClear.ts +24 -0
  266. package/src/bean/event.clientNameReal.ts +10 -0
  267. package/src/bean/event.columnsClear.ts +13 -0
  268. package/src/bean/hmr.entity.ts +12 -0
  269. package/src/bean/hmr.model.ts +16 -0
  270. package/src/bean/queue.doubleDelete.ts +29 -0
  271. package/src/bean/schedule.softDeletionPrune.ts +45 -0
  272. package/src/common/buildWhere.ts +238 -0
  273. package/src/common/checkWhere.ts +128 -0
  274. package/src/common/index.ts +3 -0
  275. package/src/common/utils.ts +74 -0
  276. package/src/config/config.ts +60 -0
  277. package/src/config/errors.ts +3 -0
  278. package/src/config/locale/en-us.ts +8 -0
  279. package/src/config/locale/zh-cn.ts +8 -0
  280. package/src/extend/index.ts +12 -0
  281. package/src/extend/schemaBuilder.ts +29 -0
  282. package/src/extend/tableBuilder.ts +87 -0
  283. package/src/index.ts +10 -0
  284. package/src/lib/const.ts +58 -0
  285. package/src/lib/databaseDialect.ts +7 -0
  286. package/src/lib/dto/dto.ts +21 -0
  287. package/src/lib/dto/dtoAggregate.ts +51 -0
  288. package/src/lib/dto/dtoCreate.ts +14 -0
  289. package/src/lib/dto/dtoGet.ts +159 -0
  290. package/src/lib/dto/dtoGroup.ts +57 -0
  291. package/src/lib/dto/dtoListAndCount.ts +16 -0
  292. package/src/lib/dto/dtoMutate.ts +82 -0
  293. package/src/lib/dto/dtoQuery.ts +9 -0
  294. package/src/lib/dto/dtoQueryPage.ts +9 -0
  295. package/src/lib/dto/dtoSelectAndCount.ts +20 -0
  296. package/src/lib/dto/dtoUpdate.ts +16 -0
  297. package/src/lib/dto/index.ts +1 -0
  298. package/src/lib/entity.ts +25 -0
  299. package/src/lib/index.ts +9 -0
  300. package/src/lib/model.ts +7 -0
  301. package/src/lib/modelCacheBase.ts +98 -0
  302. package/src/lib/relations.ts +118 -0
  303. package/src/lib/relationsDynamic.ts +75 -0
  304. package/src/lib/relationsMutate.ts +60 -0
  305. package/src/lib/relationsStatic.ts +18 -0
  306. package/src/lib/utils.ts +45 -0
  307. package/src/main.ts +79 -0
  308. package/src/service/cacheEntity_.ts +37 -0
  309. package/src/service/cacheQuery_.ts +20 -0
  310. package/src/service/columnsCache_.ts +69 -0
  311. package/src/service/columns_.ts +64 -0
  312. package/src/service/database.ts +126 -0
  313. package/src/service/databaseAsyncLocalStorage_.ts +29 -0
  314. package/src/service/databaseClient_.ts +124 -0
  315. package/src/service/db_.ts +77 -0
  316. package/src/service/entityResolver_.ts +25 -0
  317. package/src/service/modelResolver_.ts +19 -0
  318. package/src/service/relations_.ts +444 -0
  319. package/src/service/transactionAsyncLocalStorage_.ts +31 -0
  320. package/src/service/transactionConsistency/342/200/214_.ts +37 -0
  321. package/src/service/transactionFiber_.ts +42 -0
  322. package/src/service/transactionState_.ts +35 -0
  323. package/src/service/transaction_.ts +147 -0
  324. package/src/types/columns.ts +8 -0
  325. package/src/types/config.ts +23 -0
  326. package/src/types/database.ts +64 -0
  327. package/src/types/depth.ts +55 -0
  328. package/src/types/dialect.ts +17 -0
  329. package/src/types/dto/dtoAggregate.ts +3 -0
  330. package/src/types/dto/dtoGet.ts +23 -0
  331. package/src/types/dto/dtoGroup.ts +3 -0
  332. package/src/types/dto/dtoListAndCount.ts +7 -0
  333. package/src/types/dto/dtoMutate.ts +231 -0
  334. package/src/types/dto/dtoQueryBase.ts +18 -0
  335. package/src/types/dto/dtoQueryPageBase.ts +18 -0
  336. package/src/types/dto/dtoSelectAndCount.ts +11 -0
  337. package/src/types/dto/index.ts +8 -0
  338. package/src/types/entity.ts +15 -0
  339. package/src/types/entityBase.ts +11 -0
  340. package/src/types/entityBaseEmpty.ts +1 -0
  341. package/src/types/entityBaseInner.ts +18 -0
  342. package/src/types/entityBaseSimple.ts +9 -0
  343. package/src/types/extra.ts +23 -0
  344. package/src/types/index.ts +30 -0
  345. package/src/types/logger.ts +6 -0
  346. package/src/types/model.ts +152 -0
  347. package/src/types/modelAggr.ts +69 -0
  348. package/src/types/modelCount.ts +40 -0
  349. package/src/types/modelGeneral.ts +61 -0
  350. package/src/types/modelGroup.ts +48 -0
  351. package/src/types/modelIncrement.ts +50 -0
  352. package/src/types/modelWhere.ts +85 -0
  353. package/src/types/onion/databaseDialect.ts +22 -0
  354. package/src/types/onion/entity.ts +33 -0
  355. package/src/types/onion/index.ts +4 -0
  356. package/src/types/onion/model.ts +68 -0
  357. package/src/types/onion/table.ts +1 -0
  358. package/src/types/relations.ts +243 -0
  359. package/src/types/relationsAggr.ts +31 -0
  360. package/src/types/relationsColumns.ts +116 -0
  361. package/src/types/relationsDef.ts +152 -0
  362. package/src/types/relationsDefDynamic.ts +128 -0
  363. package/src/types/relationsDefMutate.ts +11 -0
  364. package/src/types/relationsGroup.ts +58 -0
  365. package/src/types/relationsMutate.ts +118 -0
  366. package/src/types/relationsTables.ts +38 -0
  367. package/src/types/transaction.ts +23 -0
@@ -0,0 +1,18 @@
1
+ import { Api, v } from 'vona-module-a-openapiutils';
2
+
3
+ import { $locale } from '../.metadata/locales.ts';
4
+ import { EntityBaseEmpty } from './entityBaseEmpty.ts';
5
+
6
+ export class EntityBaseInner extends EntityBaseEmpty {
7
+ @Api.field(v.title($locale('CreatedAt')), v.order(-2, 'max'), v.filterDateRange(), v.component('date'))
8
+ createdAt: Date;
9
+
10
+ @Api.field(v.title($locale('UpdatedAt')), v.order(-1, 'max'), v.filterDateRange(), v.component('date'))
11
+ updatedAt: Date;
12
+
13
+ @Api.field(v.title($locale('Deleted')), v.visible(false), v.default(false))
14
+ deleted: boolean;
15
+
16
+ @Api.field(v.title($locale('InstanceId')), v.visible(false), v.default(0))
17
+ iid: number;
18
+ }
@@ -0,0 +1,9 @@
1
+ import { Api, v } from 'vona-module-a-openapiutils';
2
+
3
+ import { $locale } from '../.metadata/locales.ts';
4
+ import { EntityBaseInner } from './entityBaseInner.ts';
5
+
6
+ export class EntityBaseSimple extends EntityBaseInner {
7
+ @Api.field(v.order(1, 'core'), v.title($locale('TableIdentity')))
8
+ id: number;
9
+ }
@@ -0,0 +1,23 @@
1
+ import type { ScopeModuleAOrm } from '../.metadata/index.ts';
2
+
3
+ declare module 'vona-module-a-orm' {
4
+ export interface ServiceDb {
5
+ /** @internal */
6
+ get scope(): ScopeModuleAOrm;
7
+ }
8
+
9
+ export interface ServiceDatabaseClient {
10
+ /** @internal */
11
+ get scope(): ScopeModuleAOrm;
12
+ }
13
+
14
+ export interface ServiceColumns {
15
+ /** @internal */
16
+ get scope(): ScopeModuleAOrm;
17
+ }
18
+
19
+ export interface ServiceColumnsCache {
20
+ /** @internal */
21
+ get scope(): ScopeModuleAOrm;
22
+ }
23
+ }
@@ -0,0 +1,30 @@
1
+ export * from './columns.ts';
2
+ export * from './config.ts';
3
+ export * from './database.ts';
4
+ export * from './dialect.ts';
5
+ export * from './dto/index.ts';
6
+ export * from './entity.ts';
7
+ export * from './entityBase.ts';
8
+ export * from './entityBaseEmpty.ts';
9
+ export * from './entityBaseInner.ts';
10
+ export * from './entityBaseSimple.ts';
11
+ export * from './extra.ts';
12
+ export * from './logger.ts';
13
+ export * from './model.ts';
14
+ export * from './modelAggr.ts';
15
+ export * from './modelCount.ts';
16
+ export * from './modelGeneral.ts';
17
+ export * from './modelGroup.ts';
18
+ export * from './modelIncrement.ts';
19
+ export * from './modelWhere.ts';
20
+ export * from './onion/index.ts';
21
+ export * from './relations.ts';
22
+ export * from './relationsAggr.ts';
23
+ export * from './relationsColumns.ts';
24
+ export * from './relationsDef.ts';
25
+ export * from './relationsDefDynamic.ts';
26
+ export * from './relationsDefMutate.ts';
27
+ export * from './relationsGroup.ts';
28
+ export * from './relationsMutate.ts';
29
+ export * from './relationsTables.ts';
30
+ export * from './transaction.ts';
@@ -0,0 +1,6 @@
1
+ declare module 'vona' {
2
+ export interface ILoggerChildRecord {
3
+ database: never;
4
+ model: never;
5
+ }
6
+ }
@@ -0,0 +1,152 @@
1
+ import type { Knex } from 'knex';
2
+ import type { TSummerCacheActionOptions } from 'vona-module-a-summer';
3
+
4
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
5
+ import type { TypeModelColumn, TypeModelColumns, TypeModelColumnsPatch, TypeModelWhere } from './modelWhere.ts';
6
+ import type { TypeModelOfModelLike, TypeModelParamsInclude, TypeModelsClassLikeGeneral, TypeSymbolKeyEntity } from './relations.ts';
7
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
8
+ import type { TypeModelMutateParamsInclude } from './relationsMutate.ts';
9
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
10
+
11
+ export type TypeModelCacheType = 'query' | 'entity';
12
+
13
+ // join
14
+ export type IModelSelectParamsJoinType =
15
+ | 'join'
16
+ | 'innerJoin'
17
+ | 'leftJoin'
18
+ | 'leftOuterJoin'
19
+ | 'rightJoin'
20
+ | 'rightOuterJoin'
21
+ | 'fullOuterJoin'
22
+ | 'crossJoin';
23
+ // export interface IModelSelectParamsJoinOnMap { [key: string]: string | number | boolean | Knex.Raw<any> }
24
+ export type IModelSelectParamsJoin<TRecord, TableNames = undefined, ColumnNames = keyof TRecord> = [
25
+ IModelSelectParamsJoinType,
26
+ TableNames,
27
+ [ColumnNames, ColumnNames] | Knex.JoinCallback,
28
+ ];
29
+
30
+ // order
31
+ export type IModelSelectParamsOrderDirection = 'asc' | 'desc';
32
+ export type IModelSelectParamsOrderNulls = 'first' | 'last';
33
+ export type IModelSelectParamsOrder<ColumnNames> = [ColumnNames, IModelSelectParamsOrderDirection?, IModelSelectParamsOrderNulls?];
34
+
35
+ export interface IBuildModelSelectParams<
36
+ TRecord,
37
+ Model extends BeanModelMeta | undefined = undefined,
38
+ TableNames = undefined,
39
+ ColumnNames = keyof TRecord,
40
+ Columns extends {} | undefined = undefined,
41
+ >
42
+ extends IModelRelationIncludeWrapper<Model>, IBuildModelSelectParamsBasic<TRecord, TypeModelColumn<TRecord>, TableNames, ColumnNames, Columns> {}
43
+
44
+ export interface IBuildModelSelectParamsBasic<
45
+ TRecord,
46
+ COLUMNS extends TypeModelColumn<TRecord> = TypeModelColumn<TRecord>,
47
+ TableNames = undefined,
48
+ ColumnNames = keyof TRecord,
49
+ Columns extends {} | undefined = undefined,
50
+ > {
51
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
52
+ columns?: TypeModelColumnsPatch<TRecord, COLUMNS>;
53
+ where?: TypeModelWhere<TRecord, Columns>;
54
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
55
+ orders?: IModelSelectParamsOrder<ColumnNames>[];
56
+ limit?: number;
57
+ offset?: number;
58
+ }
59
+
60
+ export type IQueryParams<
61
+ Model extends BeanModelMeta = BeanModelMeta,
62
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
63
+ > = IModelSelectParams<TypeModelOfModelLike<Model>[TypeSymbolKeyEntity], Model, ModelJoins>;
64
+
65
+ export type IModelSelectParams<
66
+ TRecord,
67
+ // not use undefined as default value
68
+ Model extends BeanModelMeta = BeanModelMeta,
69
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
70
+ > = IBuildModelSelectParams<
71
+ TRecord,
72
+ Model,
73
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
74
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
75
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
76
+ >;
77
+
78
+ export interface IBuildModelCountParams<
79
+ TRecord,
80
+ _Model extends BeanModelMeta | undefined = undefined,
81
+ TableNames = undefined,
82
+ ColumnNames = keyof TRecord,
83
+ Columns extends {} | undefined = undefined,
84
+ > {
85
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
86
+ column?: TypeModelColumn<TRecord>;
87
+ where?: TypeModelWhere<TRecord, Columns>;
88
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
89
+ }
90
+
91
+ export type IModelCountParams<
92
+ TRecord,
93
+ Model extends BeanModelMeta = BeanModelMeta,
94
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
95
+ > = IBuildModelCountParams<
96
+ TRecord,
97
+ Model,
98
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
99
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
100
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
101
+ >;
102
+
103
+ export type IModelMethodOptions = IModelMethodOptionsGeneral;
104
+ export type IModelInsertOptions<TRecord, Model extends BeanModelMeta | undefined = undefined> = IModelInsertOptionsGeneral<TRecord, Model>;
105
+ export type IModelUpdateOptions<TRecord, Model extends BeanModelMeta | undefined = undefined> = IModelUpdateOptionsGeneral<TRecord, Model>;
106
+ export type IModelDeleteOptions<TRecord, Model extends BeanModelMeta | undefined = undefined> = IModelDeleteOptionsGeneral<TRecord, Model>;
107
+ export type IModelGetOptions<TRecord, Model extends BeanModelMeta | undefined = undefined> = IModelGetOptionsGeneral<TRecord, Model>;
108
+ export type IModelMutateOptions<TRecord, Model extends BeanModelMeta | undefined = undefined> = IModelMutateOptionsGeneral<TRecord, Model>;
109
+
110
+ export interface IModelMethodOptionsGeneral {
111
+ disableDeleted?: boolean;
112
+ disableCreateTime?: boolean;
113
+ disableUpdateTime?: boolean;
114
+ disableCacheQuery?: boolean;
115
+ disableCacheEntity?: boolean;
116
+ deleted?: boolean;
117
+ cache?: TSummerCacheActionOptions<unknown, unknown>;
118
+ }
119
+
120
+ export interface IModelInsertOptionsGeneral<_TRecord, Model extends BeanModelMeta | undefined = undefined>
121
+ extends IModelMethodOptionsGeneral, IModelMutateRelationIncludeWrapper<Model> {}
122
+
123
+ export interface IModelUpdateOptionsGeneral<TRecord, Model extends BeanModelMeta | undefined = undefined>
124
+ extends IModelMethodOptionsGeneral, IModelMutateRelationIncludeWrapper<Model> {
125
+ where?: TypeModelWhere<TRecord>;
126
+ }
127
+
128
+ export interface IModelDeleteOptionsGeneral<_TRecord, Model extends BeanModelMeta | undefined = undefined>
129
+ extends IModelMethodOptionsGeneral, IModelMutateRelationIncludeWrapper<Model> {}
130
+
131
+ export interface IModelGetOptionsGeneral<TRecord, Model extends BeanModelMeta | undefined = undefined>
132
+ extends IModelMethodOptionsGeneral, IModelRelationIncludeWrapper<Model> {
133
+ columns?: TypeModelColumns<TRecord>;
134
+ }
135
+
136
+ export interface IModelMutateOptionsGeneral<_TRecord, Model extends BeanModelMeta | undefined = undefined>
137
+ extends IModelMethodOptionsGeneral, IModelMutateRelationIncludeWrapper<Model> {}
138
+
139
+ export interface IModelSelectParamsPage {
140
+ index?: number;
141
+ size?: number;
142
+ }
143
+
144
+ export interface IModelRelationIncludeWrapper<Model extends BeanModelMeta | undefined = undefined> {
145
+ include?: TypeModelParamsInclude<Model>;
146
+ with?: Record<string, unknown>;
147
+ }
148
+
149
+ export interface IModelMutateRelationIncludeWrapper<Model extends BeanModelMeta | undefined = undefined> {
150
+ include?: TypeModelMutateParamsInclude<Model>;
151
+ with?: Record<string, unknown>;
152
+ }
@@ -0,0 +1,69 @@
1
+ import type { OmitNever } from 'vona';
2
+
3
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
4
+ import type { IModelSelectParamsJoin } from './model.ts';
5
+ import type { TypeModelColumns, TypeModelWhere } from './modelWhere.ts';
6
+ import type { TypeModelsClassLikeGeneral } from './relations.ts';
7
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
8
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
9
+
10
+ // export interface TypeModelSelectAggrParamsAggrs<TRecord> {
11
+ // count?: TypeModelColumns<TRecord>;
12
+ // sum?: TypeModelColumnsStrict<TRecord>;
13
+ // avg?: TypeModelColumnsStrict<TRecord>;
14
+ // max?: TypeModelColumnsStrict<TRecord>;
15
+ // min?: TypeModelColumnsStrict<TRecord>;
16
+ // }
17
+
18
+ export interface TypeModelSelectAggrParamsAggrs<TRecord> {
19
+ count?: TypeModelColumns<TRecord>;
20
+ sum?: TypeEntityTableColumnNamesForAggrs<TRecord> | Array<TypeEntityTableColumnNamesForAggrs<TRecord>>;
21
+ avg?: TypeEntityTableColumnNamesForAggrs<TRecord> | Array<TypeEntityTableColumnNamesForAggrs<TRecord>>;
22
+ max?: TypeEntityTableColumnNamesForAggrs<TRecord> | Array<TypeEntityTableColumnNamesForAggrs<TRecord>>;
23
+ min?: TypeEntityTableColumnNamesForAggrs<TRecord> | Array<TypeEntityTableColumnNamesForAggrs<TRecord>>;
24
+ }
25
+
26
+ export type TypeEntityTableColumnNamesForAggrs<Entity> = keyof TypeEntityTableColumnsForAggrs<Entity>;
27
+
28
+ export type TypeEntityTableColumnsForAggrs<Entity> = OmitNever<
29
+ Omit<
30
+ {
31
+ [K in keyof Entity as Entity[K] extends number | undefined ? K : never]: Entity[K];
32
+ },
33
+ 'id' | 'iid'
34
+ >
35
+ >;
36
+
37
+ export interface IBuildModelSelectAggrParams<
38
+ TRecord,
39
+ Model extends BeanModelMeta | undefined = undefined,
40
+ TableNames = undefined,
41
+ ColumnNames = keyof TRecord,
42
+ Columns extends {} | undefined = undefined,
43
+ > extends IBuildModelSelectAggrParamsBasic<TRecord, Model, TableNames, ColumnNames, Columns> {}
44
+
45
+ export interface IBuildModelSelectAggrParamsBasic<
46
+ TRecord,
47
+ _Model extends BeanModelMeta | undefined = undefined,
48
+ TableNames = undefined,
49
+ ColumnNames = keyof TRecord,
50
+ Columns extends {} | undefined = undefined,
51
+ > {
52
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
53
+ aggrs: TypeModelSelectAggrParamsAggrs<TRecord>;
54
+ where?: TypeModelWhere<TRecord, Columns>;
55
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
56
+ }
57
+
58
+ export type IModelSelectAggrParams<
59
+ TRecord,
60
+ // not use undefined as default value
61
+ Model extends BeanModelMeta = BeanModelMeta,
62
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
63
+ > = IBuildModelSelectAggrParams<
64
+ TRecord,
65
+ Model,
66
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
67
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
68
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
69
+ >;
@@ -0,0 +1,40 @@
1
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
+ import type { IModelSelectParamsJoin } from './model.ts';
3
+ import type { TypeModelColumn, TypeModelWhere } from './modelWhere.ts';
4
+ import type { TypeModelsClassLikeGeneral } from './relations.ts';
5
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
6
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
7
+
8
+ export interface IBuildModelSelectCountParams<
9
+ TRecord,
10
+ Model extends BeanModelMeta | undefined = undefined,
11
+ TableNames = undefined,
12
+ ColumnNames = keyof TRecord,
13
+ Columns extends {} | undefined = undefined,
14
+ > extends IBuildModelSelectCountParamsBasic<TRecord, Model, TableNames, ColumnNames, Columns> {}
15
+
16
+ export interface IBuildModelSelectCountParamsBasic<
17
+ TRecord,
18
+ _Model extends BeanModelMeta | undefined = undefined,
19
+ TableNames = undefined,
20
+ ColumnNames = keyof TRecord,
21
+ Columns extends {} | undefined = undefined,
22
+ > {
23
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
24
+ column?: TypeModelColumn<TRecord>;
25
+ where?: TypeModelWhere<TRecord, Columns>;
26
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
27
+ }
28
+
29
+ export type IModelSelectCountParams<
30
+ TRecord,
31
+ // not use undefined as default value
32
+ Model extends BeanModelMeta = BeanModelMeta,
33
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
34
+ > = IBuildModelSelectCountParams<
35
+ TRecord,
36
+ Model,
37
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
38
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
39
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
40
+ >;
@@ -0,0 +1,61 @@
1
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
+ import type { IModelRelationIncludeWrapper, IModelSelectParamsJoin, IModelSelectParamsOrder } from './model.ts';
3
+ import type { TypeModelSelectAggrParamsAggrs } from './modelAggr.ts';
4
+ import type { TypeModelColumn, TypeModelColumnsPatch, TypeModelColumnsStrict, TypeModelWhere } from './modelWhere.ts';
5
+ import type { TypeModelsClassLikeGeneral } from './relations.ts';
6
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
7
+ import type { TypeModelSelectGroupParamsColumnNames, TypeModelSelectGroupParamsColumns } from './relationsGroup.ts';
8
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
9
+
10
+ export interface IBuildModelSelectGeneralParams<
11
+ TRecord,
12
+ Model extends BeanModelMeta | undefined = undefined,
13
+ TableNames = undefined,
14
+ ColumnNames = keyof TRecord,
15
+ Columns extends {} | undefined = undefined,
16
+ >
17
+ extends
18
+ IModelRelationIncludeWrapper<Model>,
19
+ IBuildModelSelectGeneralParamsBasic<TRecord, TypeModelColumn<TRecord>, TableNames, ColumnNames, Columns> {}
20
+
21
+ export interface IBuildModelSelectGeneralParamsBasic<
22
+ TRecord,
23
+ TColumn extends TypeModelColumn<TRecord> | undefined = TypeModelColumn<TRecord>,
24
+ TableNames = undefined,
25
+ ColumnNames = keyof TRecord,
26
+ Columns extends {} | undefined = undefined,
27
+ Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord> | undefined = undefined,
28
+ Groups extends TypeModelColumnsStrict<TRecord> | undefined = undefined,
29
+ > {
30
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
31
+ columns?: Groups extends TypeModelColumnsStrict<TRecord>
32
+ ? TColumn extends string
33
+ ? TColumn | Array<TColumn>
34
+ : TColumn
35
+ : TypeModelColumnsPatch<TRecord, TColumn>;
36
+ aggrs?: Aggrs;
37
+ groups?: Groups;
38
+ having?: TypeModelWhere<TRecord, TypeModelSelectGroupParamsColumns<TRecord, Groups, Aggrs>>;
39
+ where?: TypeModelWhere<TRecord, Columns>;
40
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
41
+ orders?: Groups extends TypeModelColumnsStrict<TRecord>
42
+ ? IModelSelectParamsOrder<TypeModelSelectGroupParamsColumnNames<TRecord, Groups, Aggrs>>[]
43
+ : Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord>
44
+ ? never
45
+ : IModelSelectParamsOrder<ColumnNames>[];
46
+ limit?: number;
47
+ offset?: number;
48
+ }
49
+
50
+ export type IModelSelectGeneralParams<
51
+ TRecord,
52
+ // not use undefined as default value
53
+ Model extends BeanModelMeta = BeanModelMeta,
54
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
55
+ > = IBuildModelSelectGeneralParams<
56
+ TRecord,
57
+ Model,
58
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
59
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
60
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
61
+ >;
@@ -0,0 +1,48 @@
1
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
+ import type { IModelSelectParamsJoin, IModelSelectParamsOrder } from './model.ts';
3
+ import type { TypeModelSelectAggrParamsAggrs } from './modelAggr.ts';
4
+ import type { TypeModelColumnsStrict, TypeModelWhere } from './modelWhere.ts';
5
+ import type { TypeModelsClassLikeGeneral } from './relations.ts';
6
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
7
+ import type { TypeModelSelectGroupParamsColumnNames, TypeModelSelectGroupParamsColumns } from './relationsGroup.ts';
8
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
9
+
10
+ export interface IBuildModelSelectGroupParams<
11
+ TRecord,
12
+ Model extends BeanModelMeta | undefined = undefined,
13
+ TableNames = undefined,
14
+ ColumnNames = keyof TRecord,
15
+ Columns extends {} | undefined = undefined,
16
+ > extends IBuildModelSelectGroupParamsBasic<TRecord, Model, TableNames, ColumnNames, Columns> {}
17
+
18
+ export interface IBuildModelSelectGroupParamsBasic<
19
+ TRecord,
20
+ _Model extends BeanModelMeta | undefined = undefined,
21
+ TableNames = undefined,
22
+ ColumnNames = keyof TRecord,
23
+ Columns extends {} | undefined = undefined,
24
+ > {
25
+ distinct?: boolean | keyof TRecord | (keyof TRecord)[];
26
+ aggrs?: TypeModelSelectAggrParamsAggrs<TRecord>;
27
+ groups: TypeModelColumnsStrict<TRecord>;
28
+ columns?: TypeModelColumnsStrict<TRecord>;
29
+ where?: TypeModelWhere<TRecord, Columns>;
30
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
31
+ having?: TypeModelWhere<TRecord, TypeModelSelectGroupParamsColumns<TRecord>>;
32
+ orders?: IModelSelectParamsOrder<TypeModelSelectGroupParamsColumnNames<TRecord>>[];
33
+ limit?: number;
34
+ offset?: number;
35
+ }
36
+
37
+ export type IModelSelectGroupParams<
38
+ TRecord,
39
+ // not use undefined as default value
40
+ Model extends BeanModelMeta = BeanModelMeta,
41
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
42
+ > = IBuildModelSelectGroupParams<
43
+ TRecord,
44
+ Model,
45
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
46
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
47
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
48
+ >;
@@ -0,0 +1,50 @@
1
+ import type { OmitNever } from 'vona';
2
+
3
+ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
4
+ import type { IModelSelectParamsJoin } from './model.ts';
5
+ import type { TypeModelWhere } from './modelWhere.ts';
6
+ import type { TypeModelsClassLikeGeneral } from './relations.ts';
7
+ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
8
+ import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
9
+
10
+ export type TypeModelIncrementParamsColumns<Entity> = OmitNever<
11
+ Omit<
12
+ {
13
+ [K in keyof Entity as Entity[K] extends number | undefined ? K : never]?: number;
14
+ },
15
+ 'id' | 'iid'
16
+ >
17
+ >;
18
+
19
+ export interface IBuildModelIncrementParams<
20
+ TRecord,
21
+ Model extends BeanModelMeta | undefined = undefined,
22
+ TableNames = undefined,
23
+ ColumnNames = keyof TRecord,
24
+ Columns extends {} | undefined = undefined,
25
+ > extends IBuildModelIncrementParamsBasic<TRecord, Model, TableNames, ColumnNames, Columns> {}
26
+
27
+ export interface IBuildModelIncrementParamsBasic<
28
+ TRecord,
29
+ _Model extends BeanModelMeta | undefined = undefined,
30
+ TableNames = undefined,
31
+ ColumnNames = keyof TRecord,
32
+ Columns extends {} | undefined = undefined,
33
+ > {
34
+ columns: TypeModelIncrementParamsColumns<TRecord>;
35
+ where: TypeModelWhere<TRecord, Columns>;
36
+ joins?: IModelSelectParamsJoin<TRecord, TableNames, ColumnNames>[];
37
+ }
38
+
39
+ export type IModelIncrementParams<
40
+ TRecord,
41
+ // not use undefined as default value
42
+ Model extends BeanModelMeta = BeanModelMeta,
43
+ ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
44
+ > = IBuildModelIncrementParams<
45
+ TRecord,
46
+ Model,
47
+ TypeEntityTableNamesOfGeneral<ModelJoins, Model>,
48
+ TypeEntityTableColumnNamesOfGeneral<ModelJoins, Model>,
49
+ TypeEntityTableColumnsOfGeneral<ModelJoins, Model>
50
+ >;
@@ -0,0 +1,85 @@
1
+ import type { TypeRecordValues } from 'vona';
2
+
3
+ export const OpAggrs = ['count', 'sum', 'avg', 'max', 'min'];
4
+
5
+ export const OpJoint = {
6
+ and: '_and_',
7
+ or: '_or_',
8
+ not: '_not_',
9
+ exists: '_exists_',
10
+ notExists: '_notExists_',
11
+ } as const;
12
+ export const OpNormal = {
13
+ eq: '_eq_',
14
+ notEq: '_notEq_',
15
+ eqI: '_eqI_',
16
+ notEqI: '_notEqI_',
17
+ gt: '_gt_',
18
+ gte: '_gte_',
19
+ lt: '_lt_',
20
+ lte: '_lte_',
21
+ in: '_in_',
22
+ notIn: '_notIn_',
23
+ is: '_is_',
24
+ isNot: '_isNot_',
25
+ between: '_between_',
26
+ notBetween: '_notBetween_',
27
+ startsWith: '_startsWith_',
28
+ endsWith: '_endsWith_',
29
+ includes: '_includes_',
30
+ startsWithI: '_startsWithI_',
31
+ endsWithI: '_endsWithI_',
32
+ includesI: '_includesI_',
33
+ ref: '_ref_',
34
+ } as const;
35
+ export const Op = {
36
+ skip: '_skip_',
37
+ ...OpJoint,
38
+ ...OpNormal,
39
+ } as const;
40
+ export const OpJointValues = Object.values(OpJoint);
41
+ export const OpNormalValues = Object.values(OpNormal);
42
+ export const OpValues = Object.values(Op);
43
+
44
+ export type TypeOpsJointPostfix<Op> = {
45
+ [KEY in keyof Op]: Op[KEY] | (KEY extends string ? `_${KEY}_${number}` : never);
46
+ };
47
+
48
+ // not use TypeOpsJointPostfix, which cause type not take affect for table.field
49
+ // export type TypeOpsJoint = TypeRecordValues<TypeOpsJointPostfix<Pick<typeof Op, 'and' | 'or' | 'not' | 'exists' | 'notExists'>>>;
50
+ export type TypeOpsJoint = TypeRecordValues<typeof OpJoint>;
51
+ export type TypeOpsNormal = TypeRecordValues<typeof OpNormal>;
52
+ export type TypeOpsAll = TypeRecordValues<typeof Op>;
53
+
54
+ // not use Knex.Raw
55
+ export type TypeModelColumnValue<TRecord, Column> = keyof TRecord | Column | Column[] | null | '_skip_';
56
+
57
+ export type TypeModelWhere<TRecord, Columns extends {} | undefined = undefined> = Columns extends {}
58
+ ? TypeModelWhereInner<Columns>
59
+ : TypeModelWhereInner<TRecord>;
60
+ // not use Knex.Raw
61
+ // Columns extends {} ? TypeModelWhereInner<Columns> | Knex.Raw : TypeModelWhereInner<TRecord> | Knex.Raw;
62
+
63
+ export type TypeModelWhereInner<TRecord> = {
64
+ [prop in keyof TRecord]?: TypeModelColumnValue<TRecord, TRecord[prop]> | TypeModelWhereFieldAll<TRecord, TRecord[prop]>;
65
+ } & {
66
+ [key in TypeOpsJoint]?: TypeModelWhereInner<TRecord>;
67
+ };
68
+
69
+ export type TypeModelWhereFieldAll<TRecord, Column> = {
70
+ [key in TypeOpsJoint]?: TypeModelWhereFieldAll<TRecord, Column>;
71
+ } & {
72
+ [key in TypeOpsNormal]?: TypeModelColumnValue<TRecord, Column>;
73
+ };
74
+
75
+ export type TypeModelWhereFieldJoint<TRecord, Column> = {
76
+ [key in TypeOpsJoint]?: TypeModelWhereFieldAll<TRecord, Column>;
77
+ };
78
+
79
+ export type TypeModelColumn<TRecord> = keyof TRecord | '*';
80
+ export type TypeModelColumns<TRecord> = TypeModelColumn<TRecord> | Array<TypeModelColumn<TRecord>>;
81
+ export type TypeModelColumnPatch<TRecord, TColumn> = TColumn extends '*' ? TypeModelColumn<TRecord> : TColumn;
82
+ export type TypeModelColumnsPatch<TRecord, TColumn> = [TColumn] extends [string]
83
+ ? TypeModelColumnPatch<TRecord, TColumn> | Array<TypeModelColumnPatch<TRecord, TColumn>>
84
+ : TColumn;
85
+ export type TypeModelColumnsStrict<TRecord> = keyof TRecord | Array<keyof TRecord>;
@@ -0,0 +1,22 @@
1
+ import type { OmitNever } from 'vona';
2
+ import type { ServiceOnion } from 'vona-module-a-onion';
3
+
4
+ export interface IDatabaseDialectRecord {}
5
+
6
+ export interface IDecoratorDatabaseDialectOptions {}
7
+
8
+ declare module 'vona-module-a-onion' {
9
+ export interface BeanOnion {
10
+ databaseDialect: ServiceOnion<IDatabaseDialectRecord>;
11
+ }
12
+ }
13
+
14
+ declare module 'vona' {
15
+ export interface ConfigOnions {
16
+ databaseDialect: OmitNever<IDatabaseDialectRecord>;
17
+ }
18
+
19
+ export interface IBeanSceneRecord {
20
+ databaseDialect: never;
21
+ }
22
+ }
@@ -0,0 +1,33 @@
1
+ import type { OmitNever } from 'vona';
2
+ import type { ServiceOnion } from 'vona-module-a-onion';
3
+ import type { TypeOpenapiMetadata } from 'vona-module-a-openapi';
4
+ import type { SchemaLike } from 'vona-module-a-openapiutils';
5
+
6
+ import type { SymbolKeyFieldsMore } from '../entity.ts';
7
+ import type { ITableRecord } from './table.ts';
8
+
9
+ export interface IEntityRecord {}
10
+
11
+ export interface IDecoratorEntityOptions<FieldsMore = never> {
12
+ [SymbolKeyFieldsMore]?: FieldsMore;
13
+ table?: keyof ITableRecord;
14
+ independent?: boolean;
15
+ openapi?: TypeOpenapiMetadata;
16
+ pipes?: SchemaLike | SchemaLike[];
17
+ }
18
+
19
+ declare module 'vona-module-a-onion' {
20
+ export interface BeanOnion {
21
+ entity: ServiceOnion<IEntityRecord>;
22
+ }
23
+ }
24
+
25
+ declare module 'vona' {
26
+ export interface ConfigOnions {
27
+ entity: OmitNever<IEntityRecord>;
28
+ }
29
+
30
+ export interface IBeanSceneRecord {
31
+ entity: never;
32
+ }
33
+ }
@@ -0,0 +1,4 @@
1
+ export * from './databaseDialect.ts';
2
+ export * from './entity.ts';
3
+ export * from './model.ts';
4
+ export * from './table.ts';