@s-hirano-ist/s-core 1.6.0 → 1.7.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.
- package/dist/articles/entities/article-entity.d.ts +0 -69
- package/dist/articles/entities/article-entity.d.ts.map +1 -1
- package/dist/articles/entities/article-entity.js +1 -67
- package/dist/articles/entities/article-entity.js.map +1 -1
- package/dist/articles/index.d.ts +1 -0
- package/dist/articles/index.d.ts.map +1 -1
- package/dist/articles/index.js +1 -0
- package/dist/articles/index.js.map +1 -1
- package/dist/articles/repositories/articles-command-repository.interface.d.ts +4 -0
- package/dist/articles/repositories/articles-command-repository.interface.d.ts.map +1 -1
- package/dist/articles/services/articles-batch-domain-service.d.ts +82 -0
- package/dist/articles/services/articles-batch-domain-service.d.ts.map +1 -0
- package/dist/articles/services/articles-batch-domain-service.js +91 -0
- package/dist/articles/services/articles-batch-domain-service.js.map +1 -0
- package/dist/books/entities/books-entity.d.ts +0 -70
- package/dist/books/entities/books-entity.d.ts.map +1 -1
- package/dist/books/entities/books-entity.js +1 -67
- package/dist/books/entities/books-entity.js.map +1 -1
- package/dist/books/index.d.ts +1 -0
- package/dist/books/index.d.ts.map +1 -1
- package/dist/books/index.js +1 -0
- package/dist/books/index.js.map +1 -1
- package/dist/books/repositories/books-command-repository.interface.d.ts +4 -0
- package/dist/books/repositories/books-command-repository.interface.d.ts.map +1 -1
- package/dist/books/services/books-batch-domain-service.d.ts +36 -0
- package/dist/books/services/books-batch-domain-service.d.ts.map +1 -0
- package/dist/books/services/books-batch-domain-service.js +49 -0
- package/dist/books/services/books-batch-domain-service.js.map +1 -0
- package/dist/common/entities/common-entity.d.ts +2 -14
- package/dist/common/entities/common-entity.d.ts.map +1 -1
- package/dist/common/entities/common-entity.js +2 -14
- package/dist/common/entities/common-entity.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +2 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/repositories/batch-command-repository.interface.d.ts +93 -0
- package/dist/common/repositories/batch-command-repository.interface.d.ts.map +1 -0
- package/dist/common/repositories/batch-command-repository.interface.js +2 -0
- package/dist/common/repositories/batch-command-repository.interface.js.map +1 -0
- package/dist/images/entities/image-entity.d.ts +0 -74
- package/dist/images/entities/image-entity.d.ts.map +1 -1
- package/dist/images/entities/image-entity.js +1 -67
- package/dist/images/entities/image-entity.js.map +1 -1
- package/dist/images/index.d.ts +1 -0
- package/dist/images/index.d.ts.map +1 -1
- package/dist/images/index.js +1 -0
- package/dist/images/index.js.map +1 -1
- package/dist/images/repositories/images-command-repository.interface.d.ts +4 -0
- package/dist/images/repositories/images-command-repository.interface.d.ts.map +1 -1
- package/dist/images/services/images-batch-domain-service.d.ts +36 -0
- package/dist/images/services/images-batch-domain-service.d.ts.map +1 -0
- package/dist/images/services/images-batch-domain-service.js +49 -0
- package/dist/images/services/images-batch-domain-service.js.map +1 -0
- package/dist/notes/entities/note-entity.d.ts +0 -63
- package/dist/notes/entities/note-entity.d.ts.map +1 -1
- package/dist/notes/entities/note-entity.js +1 -67
- package/dist/notes/entities/note-entity.js.map +1 -1
- package/dist/notes/index.d.ts +1 -0
- package/dist/notes/index.d.ts.map +1 -1
- package/dist/notes/index.js +1 -0
- package/dist/notes/index.js.map +1 -1
- package/dist/notes/repositories/notes-command-repository.interface.d.ts +4 -0
- package/dist/notes/repositories/notes-command-repository.interface.d.ts.map +1 -1
- package/dist/notes/services/notes-batch-domain-service.d.ts +36 -0
- package/dist/notes/services/notes-batch-domain-service.d.ts.map +1 -0
- package/dist/notes/services/notes-batch-domain-service.js +49 -0
- package/dist/notes/services/notes-batch-domain-service.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -253,38 +253,6 @@ export declare const ExportedArticle: z.ZodObject<{
|
|
|
253
253
|
* Immutable entity representing a published article.
|
|
254
254
|
*/
|
|
255
255
|
export type ExportedArticle = Readonly<z.infer<typeof ExportedArticle>>;
|
|
256
|
-
/**
|
|
257
|
-
* Zod schema for an article marked for export in the current batch.
|
|
258
|
-
*
|
|
259
|
-
* @remarks
|
|
260
|
-
* Represents an article that has been marked for export but not yet finalized.
|
|
261
|
-
* This intermediate state allows for batch processing with revert capability.
|
|
262
|
-
*
|
|
263
|
-
* @see {@link UnexportedArticle} for the initial state
|
|
264
|
-
* @see {@link ExportedArticle} for the final state
|
|
265
|
-
*/
|
|
266
|
-
export declare const LastUpdatedArticle: z.ZodObject<{
|
|
267
|
-
id: z.core.$ZodBranded<z.ZodDefault<z.ZodUUID>, "Id">;
|
|
268
|
-
userId: z.core.$ZodBranded<z.ZodString, "UserId">;
|
|
269
|
-
categoryName: z.core.$ZodBranded<z.ZodString, "CategoryName">;
|
|
270
|
-
categoryId: z.core.$ZodBranded<z.ZodDefault<z.ZodUUID>, "Id">;
|
|
271
|
-
title: z.core.$ZodBranded<z.ZodString, "ArticleTitle">;
|
|
272
|
-
quote: z.core.$ZodBranded<z.ZodOptional<z.ZodNullable<z.ZodString>>, "Quote">;
|
|
273
|
-
url: z.core.$ZodBranded<z.ZodURL, "Url">;
|
|
274
|
-
createdAt: z.core.$ZodBranded<z.ZodDate, "CreatedAt">;
|
|
275
|
-
ogTitle: z.core.$ZodBranded<z.ZodOptional<z.ZodNullable<z.ZodString>>, "OgTitle">;
|
|
276
|
-
ogDescription: z.core.$ZodBranded<z.ZodOptional<z.ZodNullable<z.ZodString>>, "OgDescription">;
|
|
277
|
-
ogImageUrl: z.core.$ZodBranded<z.ZodOptional<z.ZodNullable<z.ZodString>>, "OgImageUrl">;
|
|
278
|
-
status: z.ZodLiteral<"LAST_UPDATED">;
|
|
279
|
-
}, z.core.$strip>;
|
|
280
|
-
/**
|
|
281
|
-
* Type for an article marked for export.
|
|
282
|
-
*
|
|
283
|
-
* @remarks
|
|
284
|
-
* Immutable entity representing an article in the current export batch.
|
|
285
|
-
* Can be reverted back to UnexportedArticle or finalized to ExportedArticle.
|
|
286
|
-
*/
|
|
287
|
-
export type LastUpdatedArticle = Readonly<z.infer<typeof LastUpdatedArticle>>;
|
|
288
256
|
/**
|
|
289
257
|
* Arguments for creating a new article.
|
|
290
258
|
*
|
|
@@ -357,42 +325,5 @@ export declare const articleEntity: {
|
|
|
357
325
|
* @throws {UnexpectedError} For unexpected errors during export
|
|
358
326
|
*/
|
|
359
327
|
export: (article: UnexportedArticle) => ExportedArticle;
|
|
360
|
-
/**
|
|
361
|
-
* Marks an article for export in the current batch.
|
|
362
|
-
*
|
|
363
|
-
* @remarks
|
|
364
|
-
* Transitions from UNEXPORTED to LAST_UPDATED status.
|
|
365
|
-
* This allows for batch processing with revert capability.
|
|
366
|
-
*
|
|
367
|
-
* @param article - The unexported article to mark
|
|
368
|
-
* @returns A frozen LastUpdatedArticle
|
|
369
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
370
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
371
|
-
*/
|
|
372
|
-
markAsLastUpdated: (article: UnexportedArticle) => LastUpdatedArticle;
|
|
373
|
-
/**
|
|
374
|
-
* Reverts an article from LAST_UPDATED back to UNEXPORTED.
|
|
375
|
-
*
|
|
376
|
-
* @remarks
|
|
377
|
-
* Use this when batch processing fails and needs to be rolled back.
|
|
378
|
-
*
|
|
379
|
-
* @param article - The last updated article to revert
|
|
380
|
-
* @returns A frozen UnexportedArticle
|
|
381
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
382
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
383
|
-
*/
|
|
384
|
-
revert: (article: LastUpdatedArticle) => UnexportedArticle;
|
|
385
|
-
/**
|
|
386
|
-
* Finalizes an article from LAST_UPDATED to EXPORTED.
|
|
387
|
-
*
|
|
388
|
-
* @remarks
|
|
389
|
-
* Use this after batch processing succeeds to confirm the export.
|
|
390
|
-
*
|
|
391
|
-
* @param article - The last updated article to finalize
|
|
392
|
-
* @returns A frozen ExportedArticle with exportedAt timestamp
|
|
393
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
394
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
395
|
-
*/
|
|
396
|
-
finalize: (article: LastUpdatedArticle) => ExportedArticle;
|
|
397
328
|
};
|
|
398
329
|
//# sourceMappingURL=article-entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-entity.d.ts","sourceRoot":"","sources":["../../../articles/entities/article-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"article-entity.d.ts","sourceRoot":"","sources":["../../../articles/entities/article-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { CreatedAt, ExportedStatus, Id,
|
|
2
|
+
import { CreatedAt, ExportedStatus, Id, makeCreatedAt, makeExportedStatus, makeId, UnexportedStatus, UserId, } from "../../common/entities/common-entity.js";
|
|
3
3
|
import { createEntityWithErrorHandling } from "../../common/services/entity-factory.js";
|
|
4
4
|
// Value objects
|
|
5
5
|
/**
|
|
@@ -239,17 +239,6 @@ export const UnexportedArticle = Base.extend({ status: UnexportedStatus });
|
|
|
239
239
|
* @see {@link UnexportedArticle} for the initial state
|
|
240
240
|
*/
|
|
241
241
|
export const ExportedArticle = Base.extend(ExportedStatus.shape);
|
|
242
|
-
/**
|
|
243
|
-
* Zod schema for an article marked for export in the current batch.
|
|
244
|
-
*
|
|
245
|
-
* @remarks
|
|
246
|
-
* Represents an article that has been marked for export but not yet finalized.
|
|
247
|
-
* This intermediate state allows for batch processing with revert capability.
|
|
248
|
-
*
|
|
249
|
-
* @see {@link UnexportedArticle} for the initial state
|
|
250
|
-
* @see {@link ExportedArticle} for the final state
|
|
251
|
-
*/
|
|
252
|
-
export const LastUpdatedArticle = Base.extend({ status: LastUpdatedStatus });
|
|
253
242
|
/**
|
|
254
243
|
* Factory object for Article domain entity operations.
|
|
255
244
|
*
|
|
@@ -308,60 +297,5 @@ export const articleEntity = {
|
|
|
308
297
|
});
|
|
309
298
|
});
|
|
310
299
|
},
|
|
311
|
-
/**
|
|
312
|
-
* Marks an article for export in the current batch.
|
|
313
|
-
*
|
|
314
|
-
* @remarks
|
|
315
|
-
* Transitions from UNEXPORTED to LAST_UPDATED status.
|
|
316
|
-
* This allows for batch processing with revert capability.
|
|
317
|
-
*
|
|
318
|
-
* @param article - The unexported article to mark
|
|
319
|
-
* @returns A frozen LastUpdatedArticle
|
|
320
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
321
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
322
|
-
*/
|
|
323
|
-
markAsLastUpdated: (article) => {
|
|
324
|
-
return createEntityWithErrorHandling(() => Object.freeze({
|
|
325
|
-
...article,
|
|
326
|
-
status: "LAST_UPDATED",
|
|
327
|
-
}));
|
|
328
|
-
},
|
|
329
|
-
/**
|
|
330
|
-
* Reverts an article from LAST_UPDATED back to UNEXPORTED.
|
|
331
|
-
*
|
|
332
|
-
* @remarks
|
|
333
|
-
* Use this when batch processing fails and needs to be rolled back.
|
|
334
|
-
*
|
|
335
|
-
* @param article - The last updated article to revert
|
|
336
|
-
* @returns A frozen UnexportedArticle
|
|
337
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
338
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
339
|
-
*/
|
|
340
|
-
revert: (article) => {
|
|
341
|
-
return createEntityWithErrorHandling(() => Object.freeze({
|
|
342
|
-
...article,
|
|
343
|
-
status: "UNEXPORTED",
|
|
344
|
-
}));
|
|
345
|
-
},
|
|
346
|
-
/**
|
|
347
|
-
* Finalizes an article from LAST_UPDATED to EXPORTED.
|
|
348
|
-
*
|
|
349
|
-
* @remarks
|
|
350
|
-
* Use this after batch processing succeeds to confirm the export.
|
|
351
|
-
*
|
|
352
|
-
* @param article - The last updated article to finalize
|
|
353
|
-
* @returns A frozen ExportedArticle with exportedAt timestamp
|
|
354
|
-
* @throws {InvalidFormatError} When the article state is invalid
|
|
355
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
356
|
-
*/
|
|
357
|
-
finalize: (article) => {
|
|
358
|
-
return createEntityWithErrorHandling(() => {
|
|
359
|
-
const exportedStatus = makeExportedStatus();
|
|
360
|
-
return Object.freeze({
|
|
361
|
-
...article,
|
|
362
|
-
...exportedStatus,
|
|
363
|
-
});
|
|
364
|
-
});
|
|
365
|
-
},
|
|
366
300
|
};
|
|
367
301
|
//# sourceMappingURL=article-entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-entity.js","sourceRoot":"","sources":["../../../articles/entities/article-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,SAAS,EACT,cAAc,EACd,EAAE,EACF,
|
|
1
|
+
{"version":3,"file":"article-entity.js","sourceRoot":"","sources":["../../../articles/entities/article-entity.ts"],"names":[],"mappings":"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"}
|
package/dist/articles/index.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export * from "./events/article-deleted-event.js";
|
|
|
37
37
|
export * from "./repositories/articles-command-repository.interface.js";
|
|
38
38
|
export * from "./repositories/articles-query-repository.interface.js";
|
|
39
39
|
export * from "./repositories/category-query-repository.interface.js";
|
|
40
|
+
export * from "./services/articles-batch-domain-service.js";
|
|
40
41
|
export * from "./services/articles-domain-service.js";
|
|
41
42
|
export * from "./types/cache-strategy.js";
|
|
42
43
|
export * from "./types/query-params.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../articles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,uCAAuC,CAAC;AAGtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../articles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AAGtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
package/dist/articles/index.js
CHANGED
|
@@ -41,6 +41,7 @@ export * from "./repositories/articles-command-repository.interface.js";
|
|
|
41
41
|
export * from "./repositories/articles-query-repository.interface.js";
|
|
42
42
|
export * from "./repositories/category-query-repository.interface.js";
|
|
43
43
|
// Services
|
|
44
|
+
export * from "./services/articles-batch-domain-service.js";
|
|
44
45
|
export * from "./services/articles-domain-service.js";
|
|
45
46
|
// Types
|
|
46
47
|
export * from "./types/cache-strategy.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../articles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,WAAW;AACX,cAAc,8BAA8B,CAAC;AAE7C,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAElD,eAAe;AACf,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AAEtE,WAAW;AACX,cAAc,uCAAuC,CAAC;AAEtD,QAAQ;AACR,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../articles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,WAAW;AACX,cAAc,8BAA8B,CAAC;AAE7C,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAElD,eAAe;AACf,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AAEtE,WAAW;AACX,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AAEtD,QAAQ;AACR,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
@@ -7,6 +7,9 @@ import type { UnexportedArticle } from "../entities/article-entity.js";
|
|
|
7
7
|
* Follows the CQRS pattern - this interface handles write operations only.
|
|
8
8
|
* Implementations should be provided by the infrastructure layer (e.g., Prisma).
|
|
9
9
|
*
|
|
10
|
+
* For batch operations (bulkUpdateStatus), use {@link IBatchCommandRepository}
|
|
11
|
+
* from the common module directly.
|
|
12
|
+
*
|
|
10
13
|
* @example
|
|
11
14
|
* ```typescript
|
|
12
15
|
* // Infrastructure implementation
|
|
@@ -24,6 +27,7 @@ import type { UnexportedArticle } from "../entities/article-entity.js";
|
|
|
24
27
|
* ```
|
|
25
28
|
*
|
|
26
29
|
* @see {@link IArticlesQueryRepository} for read operations
|
|
30
|
+
* @see {@link IBatchCommandRepository} for batch operations
|
|
27
31
|
*/
|
|
28
32
|
export type IArticlesCommandRepository = {
|
|
29
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articles-command-repository.interface.d.ts","sourceRoot":"","sources":["../../../articles/repositories/articles-command-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE
|
|
1
|
+
{"version":3,"file":"articles-command-repository.interface.d.ts","sourceRoot":"","sources":["../../../articles/repositories/articles-command-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACxC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type UserId } from "../../common/entities/common-entity.js";
|
|
2
|
+
import type { BulkUpdateResult, IBatchCommandRepository } from "../../common/repositories/batch-command-repository.interface.js";
|
|
3
|
+
/**
|
|
4
|
+
* Result of the reset operation.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Contains the count of articles that were finalized (LAST_UPDATED -> EXPORTED)
|
|
8
|
+
* and marked (UNEXPORTED -> LAST_UPDATED).
|
|
9
|
+
*/
|
|
10
|
+
export type ResetResult = {
|
|
11
|
+
/** Number of articles finalized from LAST_UPDATED to EXPORTED */
|
|
12
|
+
finalized: BulkUpdateResult;
|
|
13
|
+
/** Number of articles marked from UNEXPORTED to LAST_UPDATED */
|
|
14
|
+
marked: BulkUpdateResult;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Domain service for batch operations on Articles.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* Encapsulates the business logic for batch status transitions.
|
|
21
|
+
* Manages the state machine for article lifecycle:
|
|
22
|
+
*
|
|
23
|
+
* ```
|
|
24
|
+
* UNEXPORTED --> LAST_UPDATED --> EXPORTED
|
|
25
|
+
* |
|
|
26
|
+
* v
|
|
27
|
+
* UNEXPORTED (revert)
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const commandRepo = createArticlesCommandRepository(prisma);
|
|
33
|
+
* const batchService = new ArticlesBatchDomainService(commandRepo);
|
|
34
|
+
*
|
|
35
|
+
* // Reset: finalize previous batch and mark new items
|
|
36
|
+
* const result = await batchService.resetArticles(userId);
|
|
37
|
+
* console.log(`Finalized: ${result.finalized.count}, Marked: ${result.marked.count}`);
|
|
38
|
+
*
|
|
39
|
+
* // Revert: undo the marking if something went wrong
|
|
40
|
+
* const revertResult = await batchService.revertArticles(userId);
|
|
41
|
+
* console.log(`Reverted: ${revertResult.count}`);
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @see {@link IBatchCommandRepository} for repository interface
|
|
45
|
+
* @see {@link ResetResult} for reset operation result
|
|
46
|
+
*/
|
|
47
|
+
export declare class ArticlesBatchDomainService {
|
|
48
|
+
private readonly commandRepository;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a new ArticlesBatchDomainService instance.
|
|
51
|
+
*
|
|
52
|
+
* @param commandRepository - The command repository for batch updates
|
|
53
|
+
*/
|
|
54
|
+
constructor(commandRepository: IBatchCommandRepository);
|
|
55
|
+
/**
|
|
56
|
+
* Resets articles for a new batch export.
|
|
57
|
+
*
|
|
58
|
+
* @param userId - The user ID for tenant isolation
|
|
59
|
+
* @returns The result containing finalized and marked counts
|
|
60
|
+
*
|
|
61
|
+
* @remarks
|
|
62
|
+
* Performs two operations in sequence:
|
|
63
|
+
* 1. Finalize: LAST_UPDATED -> EXPORTED (complete previous batch)
|
|
64
|
+
* 2. Mark: UNEXPORTED -> LAST_UPDATED (prepare current batch)
|
|
65
|
+
*
|
|
66
|
+
* This operation should be wrapped in a transaction by the caller
|
|
67
|
+
* to ensure atomicity.
|
|
68
|
+
*/
|
|
69
|
+
resetArticles(userId: UserId): Promise<ResetResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Reverts articles from LAST_UPDATED back to UNEXPORTED.
|
|
72
|
+
*
|
|
73
|
+
* @param userId - The user ID for tenant isolation
|
|
74
|
+
* @returns The result containing the count of reverted articles
|
|
75
|
+
*
|
|
76
|
+
* @remarks
|
|
77
|
+
* Used to undo a batch marking if something went wrong.
|
|
78
|
+
* Only affects articles in LAST_UPDATED status.
|
|
79
|
+
*/
|
|
80
|
+
revertArticles(userId: UserId): Promise<BulkUpdateResult>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=articles-batch-domain-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"articles-batch-domain-service.d.ts","sourceRoot":"","sources":["../../../articles/services/articles-batch-domain-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,MAAM,EACX,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACX,gBAAgB,EAChB,uBAAuB,EACvB,MAAM,iEAAiE,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,iEAAiE;IACjE,SAAS,EAAE,gBAAgB,CAAC;IAC5B,gEAAgE;IAChE,MAAM,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,0BAA0B;IAM1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAL9C;;;;OAIG;gBAC0B,iBAAiB,EAAE,uBAAuB;IAEvE;;;;;;;;;;;;;OAaG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBhE;;;;;;;;;OASG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAOtE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { makeExportedAt, } from "../../common/entities/common-entity.js";
|
|
2
|
+
/**
|
|
3
|
+
* Domain service for batch operations on Articles.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Encapsulates the business logic for batch status transitions.
|
|
7
|
+
* Manages the state machine for article lifecycle:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* UNEXPORTED --> LAST_UPDATED --> EXPORTED
|
|
11
|
+
* |
|
|
12
|
+
* v
|
|
13
|
+
* UNEXPORTED (revert)
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const commandRepo = createArticlesCommandRepository(prisma);
|
|
19
|
+
* const batchService = new ArticlesBatchDomainService(commandRepo);
|
|
20
|
+
*
|
|
21
|
+
* // Reset: finalize previous batch and mark new items
|
|
22
|
+
* const result = await batchService.resetArticles(userId);
|
|
23
|
+
* console.log(`Finalized: ${result.finalized.count}, Marked: ${result.marked.count}`);
|
|
24
|
+
*
|
|
25
|
+
* // Revert: undo the marking if something went wrong
|
|
26
|
+
* const revertResult = await batchService.revertArticles(userId);
|
|
27
|
+
* console.log(`Reverted: ${revertResult.count}`);
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @see {@link IBatchCommandRepository} for repository interface
|
|
31
|
+
* @see {@link ResetResult} for reset operation result
|
|
32
|
+
*/
|
|
33
|
+
export class ArticlesBatchDomainService {
|
|
34
|
+
commandRepository;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new ArticlesBatchDomainService instance.
|
|
37
|
+
*
|
|
38
|
+
* @param commandRepository - The command repository for batch updates
|
|
39
|
+
*/
|
|
40
|
+
constructor(commandRepository) {
|
|
41
|
+
this.commandRepository = commandRepository;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Resets articles for a new batch export.
|
|
45
|
+
*
|
|
46
|
+
* @param userId - The user ID for tenant isolation
|
|
47
|
+
* @returns The result containing finalized and marked counts
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* Performs two operations in sequence:
|
|
51
|
+
* 1. Finalize: LAST_UPDATED -> EXPORTED (complete previous batch)
|
|
52
|
+
* 2. Mark: UNEXPORTED -> LAST_UPDATED (prepare current batch)
|
|
53
|
+
*
|
|
54
|
+
* This operation should be wrapped in a transaction by the caller
|
|
55
|
+
* to ensure atomicity.
|
|
56
|
+
*/
|
|
57
|
+
async resetArticles(userId) {
|
|
58
|
+
// Step 1: Finalize previous batch (LAST_UPDATED -> EXPORTED)
|
|
59
|
+
const finalized = await this.commandRepository.bulkUpdateStatus({
|
|
60
|
+
userId,
|
|
61
|
+
fromStatus: "LAST_UPDATED",
|
|
62
|
+
toStatus: "EXPORTED",
|
|
63
|
+
exportedAt: makeExportedAt(),
|
|
64
|
+
});
|
|
65
|
+
// Step 2: Mark current batch (UNEXPORTED -> LAST_UPDATED)
|
|
66
|
+
const marked = await this.commandRepository.bulkUpdateStatus({
|
|
67
|
+
userId,
|
|
68
|
+
fromStatus: "UNEXPORTED",
|
|
69
|
+
toStatus: "LAST_UPDATED",
|
|
70
|
+
});
|
|
71
|
+
return { finalized, marked };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Reverts articles from LAST_UPDATED back to UNEXPORTED.
|
|
75
|
+
*
|
|
76
|
+
* @param userId - The user ID for tenant isolation
|
|
77
|
+
* @returns The result containing the count of reverted articles
|
|
78
|
+
*
|
|
79
|
+
* @remarks
|
|
80
|
+
* Used to undo a batch marking if something went wrong.
|
|
81
|
+
* Only affects articles in LAST_UPDATED status.
|
|
82
|
+
*/
|
|
83
|
+
async revertArticles(userId) {
|
|
84
|
+
return this.commandRepository.bulkUpdateStatus({
|
|
85
|
+
userId,
|
|
86
|
+
fromStatus: "LAST_UPDATED",
|
|
87
|
+
toStatus: "UNEXPORTED",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=articles-batch-domain-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"articles-batch-domain-service.js","sourceRoot":"","sources":["../../../articles/services/articles-batch-domain-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,GAEd,MAAM,wCAAwC,CAAC;AAoBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,0BAA0B;IAMT;IAL7B;;;;OAIG;IACH,YAA6B,iBAA0C;QAA1C,sBAAiB,GAAjB,iBAAiB,CAAyB;IAAG,CAAC;IAE3E;;;;;;;;;;;;;OAaG;IACI,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,6DAA6D;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC/D,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,cAAc,EAAE;SAC5B,CAAC,CAAC;QAEH,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC5D,MAAM;YACN,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC9C,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,QAAQ,EAAE,YAAY;SACtB,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -269,39 +269,6 @@ export declare const ExportedBook: z.ZodObject<{
|
|
|
269
269
|
* Immutable entity representing a published book.
|
|
270
270
|
*/
|
|
271
271
|
export type ExportedBook = Readonly<z.infer<typeof ExportedBook>>;
|
|
272
|
-
/**
|
|
273
|
-
* Zod schema for a book marked for export in the current batch.
|
|
274
|
-
*
|
|
275
|
-
* @remarks
|
|
276
|
-
* Represents a book that has been marked for export but not yet finalized.
|
|
277
|
-
* This intermediate state allows for batch processing with revert capability.
|
|
278
|
-
*
|
|
279
|
-
* @see {@link UnexportedBook} for the initial state
|
|
280
|
-
* @see {@link ExportedBook} for the final state
|
|
281
|
-
*/
|
|
282
|
-
export declare const LastUpdatedBook: z.ZodObject<{
|
|
283
|
-
id: z.core.$ZodBranded<z.ZodDefault<z.ZodUUID>, "Id">;
|
|
284
|
-
userId: z.core.$ZodBranded<z.ZodString, "UserId">;
|
|
285
|
-
ISBN: z.core.$ZodBranded<z.ZodString, "ISBN">;
|
|
286
|
-
title: z.core.$ZodBranded<z.ZodString, "BookTitle">;
|
|
287
|
-
googleTitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleTitle">>;
|
|
288
|
-
googleSubtitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleSubTitle">>;
|
|
289
|
-
googleAuthors: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodArray<z.ZodString>>, "GoogleAuthors">>;
|
|
290
|
-
googleDescription: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleDescription">>;
|
|
291
|
-
googleImgSrc: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleImgSrc">>;
|
|
292
|
-
googleHref: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleHref">>;
|
|
293
|
-
markdown: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "BookMarkdown">>;
|
|
294
|
-
createdAt: z.core.$ZodBranded<z.ZodDate, "CreatedAt">;
|
|
295
|
-
status: z.ZodLiteral<"LAST_UPDATED">;
|
|
296
|
-
}, z.core.$strip>;
|
|
297
|
-
/**
|
|
298
|
-
* Type for a book marked for export.
|
|
299
|
-
*
|
|
300
|
-
* @remarks
|
|
301
|
-
* Immutable entity representing a book in the current export batch.
|
|
302
|
-
* Can be reverted back to UnexportedBook or finalized to ExportedBook.
|
|
303
|
-
*/
|
|
304
|
-
export type LastUpdatedBook = Readonly<z.infer<typeof LastUpdatedBook>>;
|
|
305
272
|
/**
|
|
306
273
|
* Arguments for creating a new book.
|
|
307
274
|
*
|
|
@@ -367,42 +334,5 @@ export declare const bookEntity: {
|
|
|
367
334
|
* @throws {UnexpectedError} For unexpected errors during export
|
|
368
335
|
*/
|
|
369
336
|
export: (book: UnexportedBook) => ExportedBook;
|
|
370
|
-
/**
|
|
371
|
-
* Marks a book for export in the current batch.
|
|
372
|
-
*
|
|
373
|
-
* @remarks
|
|
374
|
-
* Transitions from UNEXPORTED to LAST_UPDATED status.
|
|
375
|
-
* This allows for batch processing with revert capability.
|
|
376
|
-
*
|
|
377
|
-
* @param book - The unexported book to mark
|
|
378
|
-
* @returns A frozen LastUpdatedBook
|
|
379
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
380
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
381
|
-
*/
|
|
382
|
-
markAsLastUpdated: (book: UnexportedBook) => LastUpdatedBook;
|
|
383
|
-
/**
|
|
384
|
-
* Reverts a book from LAST_UPDATED back to UNEXPORTED.
|
|
385
|
-
*
|
|
386
|
-
* @remarks
|
|
387
|
-
* Use this when batch processing fails and needs to be rolled back.
|
|
388
|
-
*
|
|
389
|
-
* @param book - The last updated book to revert
|
|
390
|
-
* @returns A frozen UnexportedBook
|
|
391
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
392
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
393
|
-
*/
|
|
394
|
-
revert: (book: LastUpdatedBook) => UnexportedBook;
|
|
395
|
-
/**
|
|
396
|
-
* Finalizes a book from LAST_UPDATED to EXPORTED.
|
|
397
|
-
*
|
|
398
|
-
* @remarks
|
|
399
|
-
* Use this after batch processing succeeds to confirm the export.
|
|
400
|
-
*
|
|
401
|
-
* @param book - The last updated book to finalize
|
|
402
|
-
* @returns A frozen ExportedBook with exportedAt timestamp
|
|
403
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
404
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
405
|
-
*/
|
|
406
|
-
finalize: (book: LastUpdatedBook) => ExportedBook;
|
|
407
337
|
};
|
|
408
338
|
//# sourceMappingURL=books-entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"books-entity.d.ts","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"books-entity.d.ts","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { CreatedAt, ExportedStatus, Id,
|
|
2
|
+
import { CreatedAt, ExportedStatus, Id, makeCreatedAt, makeExportedStatus, makeId, UnexportedStatus, UserId, } from "../../common/entities/common-entity.js";
|
|
3
3
|
import { createEntityWithErrorHandling } from "../../common/services/entity-factory.js";
|
|
4
4
|
// Value objects
|
|
5
5
|
/**
|
|
@@ -227,17 +227,6 @@ export const UnexportedBook = Base.extend({ status: UnexportedStatus });
|
|
|
227
227
|
* @see {@link UnexportedBook} for the initial state
|
|
228
228
|
*/
|
|
229
229
|
export const ExportedBook = Base.extend(ExportedStatus.shape);
|
|
230
|
-
/**
|
|
231
|
-
* Zod schema for a book marked for export in the current batch.
|
|
232
|
-
*
|
|
233
|
-
* @remarks
|
|
234
|
-
* Represents a book that has been marked for export but not yet finalized.
|
|
235
|
-
* This intermediate state allows for batch processing with revert capability.
|
|
236
|
-
*
|
|
237
|
-
* @see {@link UnexportedBook} for the initial state
|
|
238
|
-
* @see {@link ExportedBook} for the final state
|
|
239
|
-
*/
|
|
240
|
-
export const LastUpdatedBook = Base.extend({ status: LastUpdatedStatus });
|
|
241
230
|
/**
|
|
242
231
|
* Factory object for Book domain entity operations.
|
|
243
232
|
*
|
|
@@ -294,60 +283,5 @@ export const bookEntity = {
|
|
|
294
283
|
});
|
|
295
284
|
});
|
|
296
285
|
},
|
|
297
|
-
/**
|
|
298
|
-
* Marks a book for export in the current batch.
|
|
299
|
-
*
|
|
300
|
-
* @remarks
|
|
301
|
-
* Transitions from UNEXPORTED to LAST_UPDATED status.
|
|
302
|
-
* This allows for batch processing with revert capability.
|
|
303
|
-
*
|
|
304
|
-
* @param book - The unexported book to mark
|
|
305
|
-
* @returns A frozen LastUpdatedBook
|
|
306
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
307
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
308
|
-
*/
|
|
309
|
-
markAsLastUpdated: (book) => {
|
|
310
|
-
return createEntityWithErrorHandling(() => Object.freeze({
|
|
311
|
-
...book,
|
|
312
|
-
status: "LAST_UPDATED",
|
|
313
|
-
}));
|
|
314
|
-
},
|
|
315
|
-
/**
|
|
316
|
-
* Reverts a book from LAST_UPDATED back to UNEXPORTED.
|
|
317
|
-
*
|
|
318
|
-
* @remarks
|
|
319
|
-
* Use this when batch processing fails and needs to be rolled back.
|
|
320
|
-
*
|
|
321
|
-
* @param book - The last updated book to revert
|
|
322
|
-
* @returns A frozen UnexportedBook
|
|
323
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
324
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
325
|
-
*/
|
|
326
|
-
revert: (book) => {
|
|
327
|
-
return createEntityWithErrorHandling(() => Object.freeze({
|
|
328
|
-
...book,
|
|
329
|
-
status: "UNEXPORTED",
|
|
330
|
-
}));
|
|
331
|
-
},
|
|
332
|
-
/**
|
|
333
|
-
* Finalizes a book from LAST_UPDATED to EXPORTED.
|
|
334
|
-
*
|
|
335
|
-
* @remarks
|
|
336
|
-
* Use this after batch processing succeeds to confirm the export.
|
|
337
|
-
*
|
|
338
|
-
* @param book - The last updated book to finalize
|
|
339
|
-
* @returns A frozen ExportedBook with exportedAt timestamp
|
|
340
|
-
* @throws {InvalidFormatError} When the book state is invalid
|
|
341
|
-
* @throws {UnexpectedError} For unexpected errors
|
|
342
|
-
*/
|
|
343
|
-
finalize: (book) => {
|
|
344
|
-
return createEntityWithErrorHandling(() => {
|
|
345
|
-
const exportedStatus = makeExportedStatus();
|
|
346
|
-
return Object.freeze({
|
|
347
|
-
...book,
|
|
348
|
-
...exportedStatus,
|
|
349
|
-
});
|
|
350
|
-
});
|
|
351
|
-
},
|
|
352
286
|
};
|
|
353
287
|
//# sourceMappingURL=books-entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"books-entity.js","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,SAAS,EACT,cAAc,EACd,EAAE,EACF,
|
|
1
|
+
{"version":3,"file":"books-entity.js","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"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"}
|