@carlonicora/nestjs-neo4jsonapi 6.7.0 → 6.9.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 (218) hide show
  1. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  2. package/dist/bootstrap/app.module.factory.js +1 -0
  3. package/dist/bootstrap/app.module.factory.js.map +1 -1
  4. package/dist/bootstrap/bootstrap.options.d.ts +15 -0
  5. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  6. package/dist/common/constants/core-module.ids.d.ts +1 -0
  7. package/dist/common/constants/core-module.ids.d.ts.map +1 -1
  8. package/dist/common/constants/core-module.ids.js +1 -0
  9. package/dist/common/constants/core-module.ids.js.map +1 -1
  10. package/dist/config/enums/queue.id.d.ts +1 -0
  11. package/dist/config/enums/queue.id.d.ts.map +1 -1
  12. package/dist/config/enums/queue.id.js +1 -0
  13. package/dist/config/enums/queue.id.js.map +1 -1
  14. package/dist/core/blocknote/services/blocknote.service.d.ts +25 -0
  15. package/dist/core/blocknote/services/blocknote.service.d.ts.map +1 -1
  16. package/dist/core/blocknote/services/blocknote.service.js +84 -0
  17. package/dist/core/blocknote/services/blocknote.service.js.map +1 -1
  18. package/dist/foundations/blog/blog.constants.d.ts +17 -0
  19. package/dist/foundations/blog/blog.constants.d.ts.map +1 -0
  20. package/dist/foundations/blog/blog.constants.js +17 -0
  21. package/dist/foundations/blog/blog.constants.js.map +1 -0
  22. package/dist/foundations/blog/blog.module.d.ts +28 -0
  23. package/dist/foundations/blog/blog.module.d.ts.map +1 -0
  24. package/dist/foundations/blog/blog.module.js +143 -0
  25. package/dist/foundations/blog/blog.module.js.map +1 -0
  26. package/dist/foundations/blog/controllers/blog-category-translation.controller.d.ts +17 -0
  27. package/dist/foundations/blog/controllers/blog-category-translation.controller.d.ts.map +1 -0
  28. package/dist/foundations/blog/controllers/blog-category-translation.controller.js +81 -0
  29. package/dist/foundations/blog/controllers/blog-category-translation.controller.js.map +1 -0
  30. package/dist/foundations/blog/controllers/blog-category.controller.d.ts +24 -0
  31. package/dist/foundations/blog/controllers/blog-category.controller.d.ts.map +1 -0
  32. package/dist/foundations/blog/controllers/blog-category.controller.js +125 -0
  33. package/dist/foundations/blog/controllers/blog-category.controller.js.map +1 -0
  34. package/dist/foundations/blog/controllers/blog-post-translation.controller.d.ts +17 -0
  35. package/dist/foundations/blog/controllers/blog-post-translation.controller.d.ts.map +1 -0
  36. package/dist/foundations/blog/controllers/blog-post-translation.controller.js +81 -0
  37. package/dist/foundations/blog/controllers/blog-post-translation.controller.js.map +1 -0
  38. package/dist/foundations/blog/controllers/blog-post.controller.d.ts +28 -0
  39. package/dist/foundations/blog/controllers/blog-post.controller.d.ts.map +1 -0
  40. package/dist/foundations/blog/controllers/blog-post.controller.js +157 -0
  41. package/dist/foundations/blog/controllers/blog-post.controller.js.map +1 -0
  42. package/dist/foundations/blog/controllers/blog-settings.controller.d.ts +16 -0
  43. package/dist/foundations/blog/controllers/blog-settings.controller.d.ts.map +1 -0
  44. package/dist/foundations/blog/controllers/blog-settings.controller.js +73 -0
  45. package/dist/foundations/blog/controllers/blog-settings.controller.js.map +1 -0
  46. package/dist/foundations/blog/controllers/blog.public.controller.d.ts +26 -0
  47. package/dist/foundations/blog/controllers/blog.public.controller.d.ts.map +1 -0
  48. package/dist/foundations/blog/controllers/blog.public.controller.js +117 -0
  49. package/dist/foundations/blog/controllers/blog.public.controller.js.map +1 -0
  50. package/dist/foundations/blog/dtos/blog-category-translation.put.dto.d.ts +16 -0
  51. package/dist/foundations/blog/dtos/blog-category-translation.put.dto.d.ts.map +1 -0
  52. package/dist/foundations/blog/dtos/blog-category-translation.put.dto.js +62 -0
  53. package/dist/foundations/blog/dtos/blog-category-translation.put.dto.js.map +1 -0
  54. package/dist/foundations/blog/dtos/blog-category.dto.d.ts +11 -0
  55. package/dist/foundations/blog/dtos/blog-category.dto.d.ts.map +1 -0
  56. package/dist/foundations/blog/dtos/blog-category.dto.js +45 -0
  57. package/dist/foundations/blog/dtos/blog-category.dto.js.map +1 -0
  58. package/dist/foundations/blog/dtos/blog-category.post.dto.d.ts +16 -0
  59. package/dist/foundations/blog/dtos/blog-category.post.dto.d.ts.map +1 -0
  60. package/dist/foundations/blog/dtos/blog-category.post.dto.js +68 -0
  61. package/dist/foundations/blog/dtos/blog-category.post.dto.js.map +1 -0
  62. package/dist/foundations/blog/dtos/blog-category.put.dto.d.ts +21 -0
  63. package/dist/foundations/blog/dtos/blog-category.put.dto.d.ts.map +1 -0
  64. package/dist/foundations/blog/dtos/blog-category.put.dto.js +76 -0
  65. package/dist/foundations/blog/dtos/blog-category.put.dto.js.map +1 -0
  66. package/dist/foundations/blog/dtos/blog-post-translation.put.dto.d.ts +19 -0
  67. package/dist/foundations/blog/dtos/blog-post-translation.put.dto.d.ts.map +1 -0
  68. package/dist/foundations/blog/dtos/blog-post-translation.put.dto.js +73 -0
  69. package/dist/foundations/blog/dtos/blog-post-translation.put.dto.js.map +1 -0
  70. package/dist/foundations/blog/dtos/blog-post.dto.d.ts +11 -0
  71. package/dist/foundations/blog/dtos/blog-post.dto.d.ts.map +1 -0
  72. package/dist/foundations/blog/dtos/blog-post.dto.js +45 -0
  73. package/dist/foundations/blog/dtos/blog-post.dto.js.map +1 -0
  74. package/dist/foundations/blog/dtos/blog-post.post.dto.d.ts +27 -0
  75. package/dist/foundations/blog/dtos/blog-post.post.dto.d.ts.map +1 -0
  76. package/dist/foundations/blog/dtos/blog-post.post.dto.js +98 -0
  77. package/dist/foundations/blog/dtos/blog-post.post.dto.js.map +1 -0
  78. package/dist/foundations/blog/dtos/blog-post.put.dto.d.ts +30 -0
  79. package/dist/foundations/blog/dtos/blog-post.put.dto.d.ts.map +1 -0
  80. package/dist/foundations/blog/dtos/blog-post.put.dto.js +104 -0
  81. package/dist/foundations/blog/dtos/blog-post.put.dto.js.map +1 -0
  82. package/dist/foundations/blog/dtos/blog-settings.put.dto.d.ts +14 -0
  83. package/dist/foundations/blog/dtos/blog-settings.put.dto.d.ts.map +1 -0
  84. package/dist/foundations/blog/dtos/blog-settings.put.dto.js +52 -0
  85. package/dist/foundations/blog/dtos/blog-settings.put.dto.js.map +1 -0
  86. package/dist/foundations/blog/entities/blog-category-translation.d.ts +36 -0
  87. package/dist/foundations/blog/entities/blog-category-translation.d.ts.map +1 -0
  88. package/dist/foundations/blog/entities/blog-category-translation.js +70 -0
  89. package/dist/foundations/blog/entities/blog-category-translation.js.map +1 -0
  90. package/dist/foundations/blog/entities/blog-category-translation.meta.d.ts +3 -0
  91. package/dist/foundations/blog/entities/blog-category-translation.meta.d.ts.map +1 -0
  92. package/dist/foundations/blog/entities/blog-category-translation.meta.js +10 -0
  93. package/dist/foundations/blog/entities/blog-category-translation.meta.js.map +1 -0
  94. package/dist/foundations/blog/entities/blog-category.d.ts +35 -0
  95. package/dist/foundations/blog/entities/blog-category.d.ts.map +1 -0
  96. package/dist/foundations/blog/entities/blog-category.js +78 -0
  97. package/dist/foundations/blog/entities/blog-category.js.map +1 -0
  98. package/dist/foundations/blog/entities/blog-category.meta.d.ts +3 -0
  99. package/dist/foundations/blog/entities/blog-category.meta.d.ts.map +1 -0
  100. package/dist/foundations/blog/entities/blog-category.meta.js +10 -0
  101. package/dist/foundations/blog/entities/blog-category.meta.js.map +1 -0
  102. package/dist/foundations/blog/entities/blog-post-translation.d.ts +43 -0
  103. package/dist/foundations/blog/entities/blog-post-translation.d.ts.map +1 -0
  104. package/dist/foundations/blog/entities/blog-post-translation.js +91 -0
  105. package/dist/foundations/blog/entities/blog-post-translation.js.map +1 -0
  106. package/dist/foundations/blog/entities/blog-post-translation.meta.d.ts +3 -0
  107. package/dist/foundations/blog/entities/blog-post-translation.meta.d.ts.map +1 -0
  108. package/dist/foundations/blog/entities/blog-post-translation.meta.js +10 -0
  109. package/dist/foundations/blog/entities/blog-post-translation.meta.js.map +1 -0
  110. package/dist/foundations/blog/entities/blog-post.d.ts +63 -0
  111. package/dist/foundations/blog/entities/blog-post.d.ts.map +1 -0
  112. package/dist/foundations/blog/entities/blog-post.js +149 -0
  113. package/dist/foundations/blog/entities/blog-post.js.map +1 -0
  114. package/dist/foundations/blog/entities/blog-post.meta.d.ts +3 -0
  115. package/dist/foundations/blog/entities/blog-post.meta.d.ts.map +1 -0
  116. package/dist/foundations/blog/entities/blog-post.meta.js +10 -0
  117. package/dist/foundations/blog/entities/blog-post.meta.js.map +1 -0
  118. package/dist/foundations/blog/entities/blog-settings.d.ts +18 -0
  119. package/dist/foundations/blog/entities/blog-settings.d.ts.map +1 -0
  120. package/dist/foundations/blog/entities/blog-settings.js +26 -0
  121. package/dist/foundations/blog/entities/blog-settings.js.map +1 -0
  122. package/dist/foundations/blog/entities/blog-settings.meta.d.ts +3 -0
  123. package/dist/foundations/blog/entities/blog-settings.meta.d.ts.map +1 -0
  124. package/dist/foundations/blog/entities/blog-settings.meta.js +10 -0
  125. package/dist/foundations/blog/entities/blog-settings.meta.js.map +1 -0
  126. package/dist/foundations/blog/index.d.ts +34 -0
  127. package/dist/foundations/blog/index.d.ts.map +1 -0
  128. package/dist/foundations/blog/index.js +50 -0
  129. package/dist/foundations/blog/index.js.map +1 -0
  130. package/dist/foundations/blog/interfaces/blog.config.interface.d.ts +22 -0
  131. package/dist/foundations/blog/interfaces/blog.config.interface.d.ts.map +1 -0
  132. package/dist/foundations/blog/interfaces/blog.config.interface.js +10 -0
  133. package/dist/foundations/blog/interfaces/blog.config.interface.js.map +1 -0
  134. package/dist/foundations/blog/processors/blog.processor.d.ts +77 -0
  135. package/dist/foundations/blog/processors/blog.processor.d.ts.map +1 -0
  136. package/dist/foundations/blog/processors/blog.processor.js +404 -0
  137. package/dist/foundations/blog/processors/blog.processor.js.map +1 -0
  138. package/dist/foundations/blog/prompts/blog-summary.prompt.d.ts +6 -0
  139. package/dist/foundations/blog/prompts/blog-summary.prompt.d.ts.map +1 -0
  140. package/dist/foundations/blog/prompts/blog-summary.prompt.js +19 -0
  141. package/dist/foundations/blog/prompts/blog-summary.prompt.js.map +1 -0
  142. package/dist/foundations/blog/prompts/blog-translate.prompt.d.ts +7 -0
  143. package/dist/foundations/blog/prompts/blog-translate.prompt.d.ts.map +1 -0
  144. package/dist/foundations/blog/prompts/blog-translate.prompt.js +24 -0
  145. package/dist/foundations/blog/prompts/blog-translate.prompt.js.map +1 -0
  146. package/dist/foundations/blog/repositories/blog-category-translation.repository.d.ts +78 -0
  147. package/dist/foundations/blog/repositories/blog-category-translation.repository.d.ts.map +1 -0
  148. package/dist/foundations/blog/repositories/blog-category-translation.repository.js +199 -0
  149. package/dist/foundations/blog/repositories/blog-category-translation.repository.js.map +1 -0
  150. package/dist/foundations/blog/repositories/blog-category.repository.d.ts +56 -0
  151. package/dist/foundations/blog/repositories/blog-category.repository.d.ts.map +1 -0
  152. package/dist/foundations/blog/repositories/blog-category.repository.js +166 -0
  153. package/dist/foundations/blog/repositories/blog-category.repository.js.map +1 -0
  154. package/dist/foundations/blog/repositories/blog-post-translation.repository.d.ts +88 -0
  155. package/dist/foundations/blog/repositories/blog-post-translation.repository.d.ts.map +1 -0
  156. package/dist/foundations/blog/repositories/blog-post-translation.repository.js +220 -0
  157. package/dist/foundations/blog/repositories/blog-post-translation.repository.js.map +1 -0
  158. package/dist/foundations/blog/repositories/blog-post.repository.d.ts +118 -0
  159. package/dist/foundations/blog/repositories/blog-post.repository.d.ts.map +1 -0
  160. package/dist/foundations/blog/repositories/blog-post.repository.js +350 -0
  161. package/dist/foundations/blog/repositories/blog-post.repository.js.map +1 -0
  162. package/dist/foundations/blog/repositories/blog-settings.repository.d.ts +21 -0
  163. package/dist/foundations/blog/repositories/blog-settings.repository.d.ts.map +1 -0
  164. package/dist/foundations/blog/repositories/blog-settings.repository.js +60 -0
  165. package/dist/foundations/blog/repositories/blog-settings.repository.js.map +1 -0
  166. package/dist/foundations/blog/services/blog-category-translation.service.d.ts +37 -0
  167. package/dist/foundations/blog/services/blog-category-translation.service.d.ts.map +1 -0
  168. package/dist/foundations/blog/services/blog-category-translation.service.js +97 -0
  169. package/dist/foundations/blog/services/blog-category-translation.service.js.map +1 -0
  170. package/dist/foundations/blog/services/blog-category.service.d.ts +56 -0
  171. package/dist/foundations/blog/services/blog-category.service.d.ts.map +1 -0
  172. package/dist/foundations/blog/services/blog-category.service.js +164 -0
  173. package/dist/foundations/blog/services/blog-category.service.js.map +1 -0
  174. package/dist/foundations/blog/services/blog-post-translation.service.d.ts +44 -0
  175. package/dist/foundations/blog/services/blog-post-translation.service.d.ts.map +1 -0
  176. package/dist/foundations/blog/services/blog-post-translation.service.js +115 -0
  177. package/dist/foundations/blog/services/blog-post-translation.service.js.map +1 -0
  178. package/dist/foundations/blog/services/blog-post.service.d.ts +109 -0
  179. package/dist/foundations/blog/services/blog-post.service.d.ts.map +1 -0
  180. package/dist/foundations/blog/services/blog-post.service.js +276 -0
  181. package/dist/foundations/blog/services/blog-post.service.js.map +1 -0
  182. package/dist/foundations/blog/services/blog-queue.service.d.ts +36 -0
  183. package/dist/foundations/blog/services/blog-queue.service.d.ts.map +1 -0
  184. package/dist/foundations/blog/services/blog-queue.service.js +79 -0
  185. package/dist/foundations/blog/services/blog-queue.service.js.map +1 -0
  186. package/dist/foundations/blog/services/blog-settings.service.d.ts +21 -0
  187. package/dist/foundations/blog/services/blog-settings.service.d.ts.map +1 -0
  188. package/dist/foundations/blog/services/blog-settings.service.js +49 -0
  189. package/dist/foundations/blog/services/blog-settings.service.js.map +1 -0
  190. package/dist/foundations/blog/utils/reading-time.d.ts +5 -0
  191. package/dist/foundations/blog/utils/reading-time.d.ts.map +1 -0
  192. package/dist/foundations/blog/utils/reading-time.js +12 -0
  193. package/dist/foundations/blog/utils/reading-time.js.map +1 -0
  194. package/dist/foundations/blog/utils/slug.d.ts +12 -0
  195. package/dist/foundations/blog/utils/slug.d.ts.map +1 -0
  196. package/dist/foundations/blog/utils/slug.js +36 -0
  197. package/dist/foundations/blog/utils/slug.js.map +1 -0
  198. package/dist/foundations/foundations.modules.d.ts +8 -0
  199. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  200. package/dist/foundations/foundations.modules.js +4 -1
  201. package/dist/foundations/foundations.modules.js.map +1 -1
  202. package/dist/foundations/index.d.ts +1 -0
  203. package/dist/foundations/index.d.ts.map +1 -1
  204. package/dist/foundations/index.js +1 -0
  205. package/dist/foundations/index.js.map +1 -1
  206. package/dist/foundations/stripe/services/stripe.payment.service.d.ts +33 -0
  207. package/dist/foundations/stripe/services/stripe.payment.service.d.ts.map +1 -1
  208. package/dist/foundations/stripe/services/stripe.payment.service.js +68 -0
  209. package/dist/foundations/stripe/services/stripe.payment.service.js.map +1 -1
  210. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts +2 -2
  211. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts.map +1 -1
  212. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js +9 -9
  213. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js.map +1 -1
  214. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts +3 -1
  215. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts.map +1 -1
  216. package/dist/foundations/tokenusage/enums/tokenusage.type.js +2 -0
  217. package/dist/foundations/tokenusage/enums/tokenusage.type.js.map +1 -1
  218. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog.processor.js","sourceRoot":"","sources":["../../../../src/foundations/blog/processors/blog.processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * System prompt for the blog post summary call. Static doctrine only: every dynamic value travels
3
+ * through inputParams. No backticks and no dollar-brace placeholders anywhere in this file.
4
+ */
5
+ export declare const BLOG_SUMMARY_SYSTEM_PROMPT: string;
6
+ //# sourceMappingURL=blog-summary.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-summary.prompt.d.ts","sourceRoot":"","sources":["../../../../src/foundations/blog/prompts/blog-summary.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAU/B,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BLOG_SUMMARY_SYSTEM_PROMPT = void 0;
4
+ /**
5
+ * System prompt for the blog post summary call. Static doctrine only: every dynamic value travels
6
+ * through inputParams. No backticks and no dollar-brace placeholders anywhere in this file.
7
+ */
8
+ exports.BLOG_SUMMARY_SYSTEM_PROMPT = `
9
+ You write the summary line of a blog article. The summary appears under the title on the blog list and on the article page, and is used as the page description for search engines.
10
+
11
+ Rules:
12
+ - Write in the language given in the input. Never switch language.
13
+ - One or two sentences, at most 160 characters.
14
+ - State what the reader will learn or get from the article, using its own subject matter.
15
+ - Do not repeat the title, do not start with phrases such as "This article" or "In this post".
16
+ - No quotes, no emoji, no hashtags, no markdown.
17
+ - Use only what the article body says. Never invent facts, names or numbers.
18
+ `.trim();
19
+ //# sourceMappingURL=blog-summary.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-summary.prompt.js","sourceRoot":"","sources":["../../../../src/foundations/blog/prompts/blog-summary.prompt.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,0BAA0B,GAAG;;;;;;;;;;CAUzC,CAAC,IAAI,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * System prompt for the blog translation calls (posts and categories). Static doctrine only: every
3
+ * dynamic value travels through inputParams. No backticks and no dollar-brace placeholders anywhere
4
+ * in this file.
5
+ */
6
+ export declare const BLOG_TRANSLATE_SYSTEM_PROMPT: string;
7
+ //# sourceMappingURL=blog-translate.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-translate.prompt.d.ts","sourceRoot":"","sources":["../../../../src/foundations/blog/prompts/blog-translate.prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAcjC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BLOG_TRANSLATE_SYSTEM_PROMPT = void 0;
4
+ /**
5
+ * System prompt for the blog translation calls (posts and categories). Static doctrine only: every
6
+ * dynamic value travels through inputParams. No backticks and no dollar-brace placeholders anywhere
7
+ * in this file.
8
+ */
9
+ exports.BLOG_TRANSLATE_SYSTEM_PROMPT = `
10
+ You are a professional translator for a product blog. You translate published editorial content from the source language into the target language given in the input.
11
+
12
+ Rules:
13
+ - Translate meaning and tone, not word by word. The result must read as if it was written natively in the target language.
14
+ - Keep the author's register: if the source is informal, stay informal; if it is direct, stay direct.
15
+ - Never add, remove, summarise or explain content. Never add notes about the translation.
16
+ - Keep product names, brand names, proper nouns, code, URLs and numbers exactly as they are.
17
+ - When a field is empty in the input, return it empty.
18
+
19
+ Text fragments:
20
+ - An article body arrives as an ordered list of text fragments cut from one rich-text document. A sentence can be split across several fragments because part of it is bold, italic or a link.
21
+ - Return exactly one translated fragment for each input fragment, in the same order. Never merge, split, drop or reorder fragments, even when the target language would order the words differently: move words between neighbouring fragments only as far as the grammar requires, and keep every fragment non-empty.
22
+ - Keep the leading and trailing spaces of each fragment, so the fragments still join into correct sentences.
23
+ `.trim();
24
+ //# sourceMappingURL=blog-translate.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-translate.prompt.js","sourceRoot":"","sources":["../../../../src/foundations/blog/prompts/blog-translate.prompt.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,4BAA4B,GAAG;;;;;;;;;;;;;;CAc3C,CAAC,IAAI,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { AiStatus } from "../../../common/enums/ai.status";
3
+ import { AbstractRepository } from "../../../core/neo4j/abstracts/abstract.repository";
4
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
5
+ import { SecurityService } from "../../../core/security/services/security.service";
6
+ import { BlogTranslationSource } from "../blog.constants";
7
+ import { BlogCategoryTranslation, BlogCategoryTranslationDescriptor } from "../entities/blog-category-translation";
8
+ export declare class BlogCategoryTranslationRepository extends AbstractRepository<BlogCategoryTranslation, typeof BlogCategoryTranslationDescriptor.relationships> {
9
+ protected readonly descriptor: import("../../..").EntityDescriptor<BlogCategoryTranslation, {
10
+ category: {
11
+ model: import("../../..").DataMeta;
12
+ direction: "in";
13
+ relationship: string;
14
+ cardinality: "one";
15
+ description: string;
16
+ };
17
+ }>;
18
+ constructor(neo4j: Neo4jService, securityService: SecurityService, clsService: ClsService);
19
+ /**
20
+ * The original-language translation of a category.
21
+ */
22
+ findOriginal(params: {
23
+ categoryId: string;
24
+ }): Promise<BlogCategoryTranslation | null>;
25
+ /**
26
+ * The translation of a category in one language (original, AI, manual or placeholder).
27
+ */
28
+ findByCategoryAndLanguage(params: {
29
+ categoryId: string;
30
+ language: string;
31
+ }): Promise<BlogCategoryTranslation | null>;
32
+ /**
33
+ * Every category slug in one language starting with `prefix`, for the collision suffix.
34
+ * `excludeTranslationId` leaves out the record being re-slugged.
35
+ */
36
+ findSlugsWithPrefix(params: {
37
+ language: string;
38
+ prefix: string;
39
+ excludeTranslationId?: string;
40
+ }): Promise<string[]>;
41
+ /**
42
+ * Creates (or keeps) one placeholder per non-original language and marks it pending.
43
+ */
44
+ ensurePending(params: {
45
+ categoryId: string;
46
+ languages: string[];
47
+ }): Promise<void>;
48
+ /**
49
+ * Sets the AI status of the given non-original languages of a category.
50
+ */
51
+ setAiStatus(params: {
52
+ categoryId: string;
53
+ languages: string[];
54
+ aiStatus: AiStatus;
55
+ }): Promise<void>;
56
+ /**
57
+ * Rewrites the text of one category translation. A `manual` source also marks the record
58
+ * completed, so a hand-edited language is served even if its job had failed.
59
+ */
60
+ updateText(params: {
61
+ id: string;
62
+ name: string;
63
+ slug: string;
64
+ description?: string;
65
+ source?: BlogTranslationSource;
66
+ }): Promise<void>;
67
+ /**
68
+ * Upserts the AI translation of a category in one non-original language.
69
+ */
70
+ writeAiTranslation(params: {
71
+ categoryId: string;
72
+ language: string;
73
+ name: string;
74
+ slug: string;
75
+ description?: string;
76
+ }): Promise<void>;
77
+ }
78
+ //# sourceMappingURL=blog-category-translation.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-category-translation.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/blog/repositories/blog-category-translation.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAOnH,qBACa,iCAAkC,SAAQ,kBAAkB,CACvE,uBAAuB,EACvB,OAAO,iCAAiC,CAAC,aAAa,CACvD;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;OAAqC;gBAEtD,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAiB3F;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE;QACtC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAiB3C;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBrB;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BvF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzG;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,qBAAqB,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjB;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BlB"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BlogCategoryTranslationRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const ai_status_1 = require("../../../common/enums/ai.status");
16
+ const abstract_repository_1 = require("../../../core/neo4j/abstracts/abstract.repository");
17
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
18
+ const security_service_1 = require("../../../core/security/services/security.service");
19
+ const blog_category_meta_1 = require("../entities/blog-category.meta");
20
+ const blog_category_translation_1 = require("../entities/blog-category-translation");
21
+ const blog_category_translation_meta_1 = require("../entities/blog-category-translation.meta");
22
+ const translation = blog_category_translation_meta_1.blogCategoryTranslationMeta.nodeName;
23
+ const translationLabel = blog_category_translation_meta_1.blogCategoryTranslationMeta.labelName;
24
+ const categoryLabel = blog_category_meta_1.blogCategoryMeta.labelName;
25
+ let BlogCategoryTranslationRepository = class BlogCategoryTranslationRepository extends abstract_repository_1.AbstractRepository {
26
+ constructor(neo4j, securityService, clsService) {
27
+ super(neo4j, securityService, clsService);
28
+ this.descriptor = blog_category_translation_1.BlogCategoryTranslationDescriptor;
29
+ }
30
+ /**
31
+ * The original-language translation of a category.
32
+ */
33
+ async findOriginal(params) {
34
+ const query = this.neo4j.initQuery({ serialiser: blog_category_translation_1.BlogCategoryTranslationDescriptor.model });
35
+ query.queryParams = { ...query.queryParams, categoryId: params.categoryId };
36
+ query.query += `
37
+ ${this.buildDefaultMatch()}
38
+ WHERE ${translation}.isOriginal = true
39
+ AND EXISTS {
40
+ MATCH (${translation})<-[:HAS_TRANSLATION]-(:${categoryLabel} {id: $categoryId})
41
+ }
42
+ ${this.buildReturnStatement()}
43
+ `;
44
+ return this.neo4j.readOne(query);
45
+ }
46
+ /**
47
+ * The translation of a category in one language (original, AI, manual or placeholder).
48
+ */
49
+ async findByCategoryAndLanguage(params) {
50
+ const query = this.neo4j.initQuery({ serialiser: blog_category_translation_1.BlogCategoryTranslationDescriptor.model });
51
+ query.queryParams = { ...query.queryParams, categoryId: params.categoryId, language: params.language };
52
+ query.query += `
53
+ ${this.buildDefaultMatch()}
54
+ WHERE ${translation}.language = $language
55
+ AND EXISTS {
56
+ MATCH (${translation})<-[:HAS_TRANSLATION]-(:${categoryLabel} {id: $categoryId})
57
+ }
58
+ ${this.buildReturnStatement()}
59
+ `;
60
+ return this.neo4j.readOne(query);
61
+ }
62
+ /**
63
+ * Every category slug in one language starting with `prefix`, for the collision suffix.
64
+ * `excludeTranslationId` leaves out the record being re-slugged.
65
+ */
66
+ async findSlugsWithPrefix(params) {
67
+ const query = this.neo4j.initQuery({ serialiser: blog_category_translation_1.BlogCategoryTranslationDescriptor.model });
68
+ query.queryParams = {
69
+ ...query.queryParams,
70
+ language: params.language,
71
+ prefix: params.prefix,
72
+ excludeTranslationId: params.excludeTranslationId ?? null,
73
+ };
74
+ query.query += `
75
+ ${this.buildDefaultMatch()}
76
+ WHERE ${translation}.language = $language
77
+ AND ${translation}.slug STARTS WITH $prefix
78
+ AND ($excludeTranslationId IS NULL OR ${translation}.id <> $excludeTranslationId)
79
+ RETURN ${translation}
80
+ `;
81
+ const translations = await this.neo4j.readMany(query);
82
+ return translations.map((item) => item.slug).filter((slug) => !!slug);
83
+ }
84
+ /**
85
+ * Creates (or keeps) one placeholder per non-original language and marks it pending.
86
+ */
87
+ async ensurePending(params) {
88
+ if (params.languages.length === 0)
89
+ return;
90
+ await this.neo4j.executeInTransaction([
91
+ {
92
+ query: `
93
+ MATCH (category:${categoryLabel} {id: $categoryId})
94
+ UNWIND $languages AS language
95
+ WITH category, language
96
+ WHERE language <> category.originalLanguage
97
+ MERGE (category)-[:HAS_TRANSLATION]->(${translation}:${translationLabel} {language: language})
98
+ ON CREATE SET
99
+ ${translation}.id = randomUUID(),
100
+ ${translation}.isOriginal = false,
101
+ ${translation}.source = $source,
102
+ ${translation}.createdAt = datetime()
103
+ SET ${translation}.aiStatus = $aiStatus, ${translation}.updatedAt = datetime()
104
+ `,
105
+ params: {
106
+ categoryId: params.categoryId,
107
+ languages: params.languages,
108
+ source: "ai",
109
+ aiStatus: ai_status_1.AiStatus.Pending,
110
+ },
111
+ },
112
+ ]);
113
+ }
114
+ /**
115
+ * Sets the AI status of the given non-original languages of a category.
116
+ */
117
+ async setAiStatus(params) {
118
+ if (params.languages.length === 0)
119
+ return;
120
+ await this.neo4j.executeInTransaction([
121
+ {
122
+ query: `
123
+ MATCH (:${categoryLabel} {id: $categoryId})-[:HAS_TRANSLATION]->(${translation}:${translationLabel})
124
+ WHERE ${translation}.language IN $languages
125
+ AND ${translation}.isOriginal = false
126
+ SET ${translation}.aiStatus = $aiStatus, ${translation}.updatedAt = datetime()
127
+ `,
128
+ params: { categoryId: params.categoryId, languages: params.languages, aiStatus: params.aiStatus },
129
+ },
130
+ ]);
131
+ }
132
+ /**
133
+ * Rewrites the text of one category translation. A `manual` source also marks the record
134
+ * completed, so a hand-edited language is served even if its job had failed.
135
+ */
136
+ async updateText(params) {
137
+ await this.neo4j.executeInTransaction([
138
+ {
139
+ query: `
140
+ MATCH (${translation}:${translationLabel} {id: $id})
141
+ SET ${translation}.name = $name,
142
+ ${translation}.slug = $slug,
143
+ ${translation}.description = $description,
144
+ ${translation}.updatedAt = datetime()
145
+ ${params.source ? `SET ${translation}.source = $source` : ""}
146
+ ${params.source === "manual" ? `SET ${translation}.aiStatus = $completedStatus` : ""}
147
+ `,
148
+ params: {
149
+ id: params.id,
150
+ name: params.name,
151
+ slug: params.slug,
152
+ description: params.description ?? null,
153
+ source: params.source ?? null,
154
+ completedStatus: ai_status_1.AiStatus.Completed,
155
+ },
156
+ },
157
+ ]);
158
+ }
159
+ /**
160
+ * Upserts the AI translation of a category in one non-original language.
161
+ */
162
+ async writeAiTranslation(params) {
163
+ await this.neo4j.executeInTransaction([
164
+ {
165
+ query: `
166
+ MATCH (category:${categoryLabel} {id: $categoryId})
167
+ WHERE category.originalLanguage <> $language
168
+ MERGE (category)-[:HAS_TRANSLATION]->(${translation}:${translationLabel} {language: $language})
169
+ ON CREATE SET
170
+ ${translation}.id = randomUUID(),
171
+ ${translation}.isOriginal = false,
172
+ ${translation}.createdAt = datetime()
173
+ SET ${translation}.source = $source,
174
+ ${translation}.aiStatus = $aiStatus,
175
+ ${translation}.name = $name,
176
+ ${translation}.slug = $slug,
177
+ ${translation}.description = $description,
178
+ ${translation}.translatedAt = datetime(),
179
+ ${translation}.updatedAt = datetime()
180
+ `,
181
+ params: {
182
+ categoryId: params.categoryId,
183
+ language: params.language,
184
+ source: "ai",
185
+ aiStatus: ai_status_1.AiStatus.Completed,
186
+ name: params.name,
187
+ slug: params.slug,
188
+ description: params.description ?? null,
189
+ },
190
+ },
191
+ ]);
192
+ }
193
+ };
194
+ exports.BlogCategoryTranslationRepository = BlogCategoryTranslationRepository;
195
+ exports.BlogCategoryTranslationRepository = BlogCategoryTranslationRepository = __decorate([
196
+ (0, common_1.Injectable)(),
197
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService, security_service_1.SecurityService, nestjs_cls_1.ClsService])
198
+ ], BlogCategoryTranslationRepository);
199
+ //# sourceMappingURL=blog-category-translation.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-category-translation.repository.js","sourceRoot":"","sources":["../../../../src/foundations/blog/repositories/blog-category-translation.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { AbstractRepository } from "../../../core/neo4j/abstracts/abstract.repository";
3
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
4
+ import { SecurityService } from "../../../core/security/services/security.service";
5
+ import { BlogCategory, BlogCategoryDescriptor } from "../entities/blog-category";
6
+ export declare class BlogCategoryRepository extends AbstractRepository<BlogCategory, typeof BlogCategoryDescriptor.relationships> {
7
+ protected readonly descriptor: import("../../..").EntityDescriptor<BlogCategory, {
8
+ translations: {
9
+ model: import("../../..").DataMeta;
10
+ direction: "out";
11
+ relationship: string;
12
+ cardinality: "many";
13
+ required: false;
14
+ description: string;
15
+ };
16
+ }>;
17
+ constructor(neo4j: Neo4jService, securityService: SecurityService, clsService: ClsService);
18
+ /**
19
+ * Admin list. A category has no text of its own (name and description live
20
+ * on its translations), so the inherited find would ignore `term`: a search
21
+ * matches any language version through the translation full-text index.
22
+ */
23
+ find(params: Parameters<AbstractRepository<BlogCategory, typeof BlogCategoryDescriptor.relationships>["find"]>[0]): Promise<any[]>;
24
+ createWithOriginal(params: {
25
+ id: string;
26
+ originalLanguage: string;
27
+ image?: string;
28
+ translation: {
29
+ id: string;
30
+ name: string;
31
+ slug: string;
32
+ description?: string;
33
+ };
34
+ }): Promise<void>;
35
+ /**
36
+ * Full update of the language-independent fields: a missing image clears it.
37
+ */
38
+ updateShared(params: {
39
+ id: string;
40
+ image?: string;
41
+ }): Promise<void>;
42
+ /**
43
+ * Deletes the category, its translations and its post edges. Posts stay.
44
+ */
45
+ deleteWithTranslations(params: {
46
+ id: string;
47
+ }): Promise<void>;
48
+ /**
49
+ * Every category with its text in $language (completed translation, otherwise the original),
50
+ * ordered by name. Unpaginated by design: the category set is small and bounded.
51
+ */
52
+ findPublicList(params: {
53
+ language: string;
54
+ }): Promise<BlogCategory[]>;
55
+ }
56
+ //# sourceMappingURL=blog-category.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-category.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/blog/repositories/blog-category.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AASjF,qBACa,sBAAuB,SAAQ,kBAAkB,CAC5D,YAAY,EACZ,OAAO,sBAAsB,CAAC,aAAa,CAC5C;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA0B;gBAE3C,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;;;OAIG;IACG,IAAI,CACR,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IA4BxG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/E,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCjB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzE;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA0B5E"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BlogCategoryRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const ai_status_1 = require("../../../common/enums/ai.status");
16
+ const abstract_repository_1 = require("../../../core/neo4j/abstracts/abstract.repository");
17
+ const build_fulltext_term_1 = require("../../../core/neo4j/helpers/build-fulltext-term");
18
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
19
+ const security_service_1 = require("../../../core/security/services/security.service");
20
+ const blog_category_1 = require("../entities/blog-category");
21
+ const blog_category_meta_1 = require("../entities/blog-category.meta");
22
+ const blog_category_translation_1 = require("../entities/blog-category-translation");
23
+ const blog_category_translation_meta_1 = require("../entities/blog-category-translation.meta");
24
+ const category = blog_category_meta_1.blogCategoryMeta.nodeName;
25
+ const categoryLabel = blog_category_meta_1.blogCategoryMeta.labelName;
26
+ const translationLabel = blog_category_translation_meta_1.blogCategoryTranslationMeta.labelName;
27
+ let BlogCategoryRepository = class BlogCategoryRepository extends abstract_repository_1.AbstractRepository {
28
+ constructor(neo4j, securityService, clsService) {
29
+ super(neo4j, securityService, clsService);
30
+ this.descriptor = blog_category_1.BlogCategoryDescriptor;
31
+ }
32
+ /**
33
+ * Admin list. A category has no text of its own (name and description live
34
+ * on its translations), so the inherited find would ignore `term`: a search
35
+ * matches any language version through the translation full-text index.
36
+ */
37
+ async find(params) {
38
+ if (!params.term)
39
+ return super.find(params);
40
+ const query = this.neo4j.initQuery({
41
+ cursor: params.cursor,
42
+ serialiser: blog_category_1.BlogCategoryDescriptor.model,
43
+ fetchAll: params.fetchAll,
44
+ });
45
+ query.queryParams = { ...query.queryParams, term: (0, build_fulltext_term_1.buildFulltextTerm)(params.term) };
46
+ query.query += `
47
+ CALL db.index.fulltext.queryNodes("${blog_category_translation_1.BlogCategoryTranslationDescriptor.fulltextIndexName}", $term) YIELD node, score
48
+ MATCH (${category}:${categoryLabel})-[:HAS_TRANSLATION]->(node)
49
+ WITH ${category}, max(score) AS score
50
+ CALL {
51
+ WITH ${category}
52
+ ${this.buildDefaultMatch()}
53
+ RETURN true AS ${category}_fulltextAccess
54
+ LIMIT 1
55
+ }
56
+ WITH ${category}, score
57
+ ORDER BY score DESC
58
+ {CURSOR}
59
+ ${this.buildReturnStatement()}
60
+ `;
61
+ return this.neo4j.readMany(query);
62
+ }
63
+ async createWithOriginal(params) {
64
+ await this.neo4j.executeInTransaction([
65
+ {
66
+ query: `
67
+ CREATE (${category}:${categoryLabel} {
68
+ id: $id,
69
+ originalLanguage: $originalLanguage,
70
+ image: $image,
71
+ createdAt: datetime(),
72
+ updatedAt: datetime()
73
+ })
74
+ CREATE (translation:${translationLabel} {
75
+ id: $translationId,
76
+ language: $originalLanguage,
77
+ isOriginal: true,
78
+ source: $source,
79
+ aiStatus: $aiStatus,
80
+ name: $name,
81
+ slug: $slug,
82
+ description: $description,
83
+ createdAt: datetime(),
84
+ updatedAt: datetime()
85
+ })
86
+ CREATE (${category})-[:HAS_TRANSLATION]->(translation)
87
+ `,
88
+ params: {
89
+ id: params.id,
90
+ originalLanguage: params.originalLanguage,
91
+ image: params.image ?? null,
92
+ translationId: params.translation.id,
93
+ source: "original",
94
+ aiStatus: ai_status_1.AiStatus.Completed,
95
+ name: params.translation.name,
96
+ slug: params.translation.slug,
97
+ description: params.translation.description ?? null,
98
+ },
99
+ },
100
+ ]);
101
+ }
102
+ /**
103
+ * Full update of the language-independent fields: a missing image clears it.
104
+ */
105
+ async updateShared(params) {
106
+ await this.neo4j.executeInTransaction([
107
+ {
108
+ query: `
109
+ MATCH (${category}:${categoryLabel} {id: $id})
110
+ SET ${category}.image = $image, ${category}.updatedAt = datetime()
111
+ `,
112
+ params: { id: params.id, image: params.image ?? null },
113
+ },
114
+ ]);
115
+ }
116
+ /**
117
+ * Deletes the category, its translations and its post edges. Posts stay.
118
+ */
119
+ async deleteWithTranslations(params) {
120
+ await this.neo4j.executeInTransaction([
121
+ {
122
+ query: `
123
+ MATCH (${category}:${categoryLabel} {id: $id})
124
+ OPTIONAL MATCH (${category})-[:HAS_TRANSLATION]->(translation:${translationLabel})
125
+ WITH ${category}, collect(translation) AS translations
126
+ FOREACH (item IN translations | DETACH DELETE item)
127
+ DETACH DELETE ${category}
128
+ `,
129
+ params: { id: params.id },
130
+ },
131
+ ]);
132
+ }
133
+ /**
134
+ * Every category with its text in $language (completed translation, otherwise the original),
135
+ * ordered by name. Unpaginated by design: the category set is small and bounded.
136
+ */
137
+ async findPublicList(params) {
138
+ const query = this.neo4j.initQuery({ serialiser: blog_category_1.BlogCategoryDescriptor.model });
139
+ query.queryParams = {
140
+ ...query.queryParams,
141
+ language: params.language,
142
+ completedStatus: ai_status_1.AiStatus.Completed,
143
+ };
144
+ query.query += `
145
+ ${this.buildDefaultMatch()}
146
+ WITH ${category},
147
+ head([(${category})-[:HAS_TRANSLATION]->(localised:${translationLabel}) WHERE localised.language = $language AND localised.aiStatus = $completedStatus | localised]) AS localised
148
+ WITH ${category},
149
+ coalesce(localised, head([(${category})-[:HAS_TRANSLATION]->(original:${translationLabel}) WHERE original.isOriginal = true | original])) AS t
150
+ WITH ${category}, t
151
+ ORDER BY toLower(t.name) ASC
152
+ RETURN ${category},
153
+ t.language AS resolvedLanguage,
154
+ t.name AS resolvedName,
155
+ t.slug AS resolvedSlug,
156
+ t.description AS resolvedDescription
157
+ `;
158
+ return this.neo4j.readMany(query);
159
+ }
160
+ };
161
+ exports.BlogCategoryRepository = BlogCategoryRepository;
162
+ exports.BlogCategoryRepository = BlogCategoryRepository = __decorate([
163
+ (0, common_1.Injectable)(),
164
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService, security_service_1.SecurityService, nestjs_cls_1.ClsService])
165
+ ], BlogCategoryRepository);
166
+ //# sourceMappingURL=blog-category.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-category.repository.js","sourceRoot":"","sources":["../../../../src/foundations/blog/repositories/blog-category.repository.ts"],"names":[],"mappings":"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"}