@buunguyen3589/collections-module 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.d.ts +1 -0
- package/dist/app/index.js +17 -0
- package/dist/app/usecases/command/create-collection.usecase.d.ts +16 -0
- package/dist/app/usecases/command/create-collection.usecase.js +66 -0
- package/dist/app/usecases/command/delete-collection.usecase.d.ts +13 -0
- package/dist/app/usecases/command/delete-collection.usecase.js +57 -0
- package/dist/app/usecases/command/index.d.ts +5 -0
- package/dist/app/usecases/command/index.js +21 -0
- package/dist/app/usecases/command/post-collection/index.d.ts +1 -0
- package/dist/app/usecases/command/post-collection/index.js +17 -0
- package/dist/app/usecases/command/post-collection/upsert-post-collection.usecase.d.ts +14 -0
- package/dist/app/usecases/command/post-collection/upsert-post-collection.usecase.js +63 -0
- package/dist/app/usecases/command/product-collection/add-all-products-collection.usecase.d.ts +24 -0
- package/dist/app/usecases/command/product-collection/add-all-products-collection.usecase.js +93 -0
- package/dist/app/usecases/command/product-collection/create-product-collection.usecase.d.ts +24 -0
- package/dist/app/usecases/command/product-collection/create-product-collection.usecase.js +94 -0
- package/dist/app/usecases/command/product-collection/delete-product-collection.usecase.d.ts +14 -0
- package/dist/app/usecases/command/product-collection/delete-product-collection.usecase.js +56 -0
- package/dist/app/usecases/command/product-collection/index.d.ts +3 -0
- package/dist/app/usecases/command/product-collection/index.js +19 -0
- package/dist/app/usecases/command/update-collection.usecase.d.ts +15 -0
- package/dist/app/usecases/command/update-collection.usecase.js +73 -0
- package/dist/app/usecases/index.d.ts +2 -0
- package/dist/app/usecases/index.js +18 -0
- package/dist/app/usecases/query/get-detail-collection.usecase.d.ts +36 -0
- package/dist/app/usecases/query/get-detail-collection.usecase.js +216 -0
- package/dist/app/usecases/query/get-list-collection.usecase.d.ts +23 -0
- package/dist/app/usecases/query/get-list-collection.usecase.js +96 -0
- package/dist/app/usecases/query/get-products-by-collections-internal.usecase.d.ts +19 -0
- package/dist/app/usecases/query/get-products-by-collections-internal.usecase.js +65 -0
- package/dist/app/usecases/query/get-products-by-collections.usecase.d.ts +44 -0
- package/dist/app/usecases/query/get-products-by-collections.usecase.js +130 -0
- package/dist/app/usecases/query/index.d.ts +4 -0
- package/dist/app/usecases/query/index.js +20 -0
- package/dist/collection.module.d.ts +2 -0
- package/dist/collection.module.js +62 -0
- package/dist/domain/aggregates/enums/collection.enum.d.ts +5 -0
- package/dist/domain/aggregates/enums/collection.enum.js +9 -0
- package/dist/domain/aggregates/enums/index.d.ts +1 -0
- package/dist/domain/aggregates/enums/index.js +17 -0
- package/dist/domain/aggregates/index.d.ts +2 -0
- package/dist/domain/aggregates/index.js +18 -0
- package/dist/domain/aggregates/types/collection.type.d.ts +14 -0
- package/dist/domain/aggregates/types/collection.type.js +2 -0
- package/dist/domain/aggregates/types/index.d.ts +3 -0
- package/dist/domain/aggregates/types/index.js +19 -0
- package/dist/domain/aggregates/types/post-collection.type.d.ts +12 -0
- package/dist/domain/aggregates/types/post-collection.type.js +2 -0
- package/dist/domain/aggregates/types/product-collection.type.d.ts +11 -0
- package/dist/domain/aggregates/types/product-collection.type.js +2 -0
- package/dist/domain/builders/collection.builder.d.ts +8 -0
- package/dist/domain/builders/collection.builder.js +38 -0
- package/dist/domain/builders/index.d.ts +3 -0
- package/dist/domain/builders/index.js +19 -0
- package/dist/domain/builders/post-collection.builder.d.ts +8 -0
- package/dist/domain/builders/post-collection.builder.js +38 -0
- package/dist/domain/builders/product-collection.builder.d.ts +8 -0
- package/dist/domain/builders/product-collection.builder.js +38 -0
- package/dist/domain/consts/event-collection.name.const.d.ts +5 -0
- package/dist/domain/consts/event-collection.name.const.js +8 -0
- package/dist/domain/consts/event-post-collection.name.const.d.ts +6 -0
- package/dist/domain/consts/event-post-collection.name.const.js +9 -0
- package/dist/domain/consts/event-product-collection.name.const.d.ts +5 -0
- package/dist/domain/consts/event-product-collection.name.const.js +8 -0
- package/dist/domain/consts/index.d.ts +3 -0
- package/dist/domain/consts/index.js +19 -0
- package/dist/domain/dtos/collection.dto.d.ts +4 -0
- package/dist/domain/dtos/collection.dto.js +2 -0
- package/dist/domain/dtos/index.d.ts +3 -0
- package/dist/domain/dtos/index.js +19 -0
- package/dist/domain/dtos/post-collection.dto.d.ts +4 -0
- package/dist/domain/dtos/post-collection.dto.js +2 -0
- package/dist/domain/dtos/product-collection.dto.d.ts +4 -0
- package/dist/domain/dtos/product-collection.dto.js +2 -0
- package/dist/domain/entities/collection.entity.d.ts +40 -0
- package/dist/domain/entities/collection.entity.js +87 -0
- package/dist/domain/entities/index.d.ts +3 -0
- package/dist/domain/entities/index.js +19 -0
- package/dist/domain/entities/post-collection.entity.d.ts +33 -0
- package/dist/domain/entities/post-collection.entity.js +70 -0
- package/dist/domain/entities/product-collection.entity.d.ts +30 -0
- package/dist/domain/entities/product-collection.entity.js +55 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.js +22 -0
- package/dist/domain/mappers/collection.mapper.d.ts +11 -0
- package/dist/domain/mappers/collection.mapper.js +56 -0
- package/dist/domain/mappers/index.d.ts +3 -0
- package/dist/domain/mappers/index.js +19 -0
- package/dist/domain/mappers/post-collection.mapper.d.ts +11 -0
- package/dist/domain/mappers/post-collection.mapper.js +50 -0
- package/dist/domain/mappers/product-collection.mapper.d.ts +11 -0
- package/dist/domain/mappers/product-collection.mapper.js +48 -0
- package/dist/domain/repositories/collection.repository.d.ts +21 -0
- package/dist/domain/repositories/collection.repository.js +93 -0
- package/dist/domain/repositories/index.d.ts +3 -0
- package/dist/domain/repositories/index.js +19 -0
- package/dist/domain/repositories/post-collection.repository.d.ts +21 -0
- package/dist/domain/repositories/post-collection.repository.js +107 -0
- package/dist/domain/repositories/product-collection.repository.d.ts +21 -0
- package/dist/domain/repositories/product-collection.repository.js +98 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +23 -0
- package/dist/infra/daos/collection.dao.d.ts +7 -0
- package/dist/infra/daos/collection.dao.js +36 -0
- package/dist/infra/daos/index.d.ts +3 -0
- package/dist/infra/daos/index.js +19 -0
- package/dist/infra/daos/post-collection.dao.d.ts +10 -0
- package/dist/infra/daos/post-collection.dao.js +70 -0
- package/dist/infra/daos/product-collection.dao.d.ts +9 -0
- package/dist/infra/daos/product-collection.dao.js +69 -0
- package/dist/infra/event-handlers/collection.event-emitter.d.ts +6 -0
- package/dist/infra/event-handlers/collection.event-emitter.js +27 -0
- package/dist/infra/event-handlers/index.d.ts +3 -0
- package/dist/infra/event-handlers/index.js +19 -0
- package/dist/infra/event-handlers/post-collection.event-emitter.d.ts +6 -0
- package/dist/infra/event-handlers/post-collection.event-emitter.js +27 -0
- package/dist/infra/event-handlers/product-collection.event-emitter.d.ts +6 -0
- package/dist/infra/event-handlers/product-collection.event-emitter.js +27 -0
- package/dist/infra/filters/collection.filter.d.ts +25 -0
- package/dist/infra/filters/collection.filter.js +84 -0
- package/dist/infra/filters/index.d.ts +3 -0
- package/dist/infra/filters/index.js +19 -0
- package/dist/infra/filters/post-collection.filter.d.ts +16 -0
- package/dist/infra/filters/post-collection.filter.js +54 -0
- package/dist/infra/filters/product-collection.filter.d.ts +13 -0
- package/dist/infra/filters/product-collection.filter.js +44 -0
- package/dist/infra/index.d.ts +6 -0
- package/dist/infra/index.js +22 -0
- package/dist/infra/mappers/collection.mapper.d.ts +8 -0
- package/dist/infra/mappers/collection.mapper.js +31 -0
- package/dist/infra/mappers/index.d.ts +3 -0
- package/dist/infra/mappers/index.js +19 -0
- package/dist/infra/mappers/post-collection.mapper.d.ts +8 -0
- package/dist/infra/mappers/post-collection.mapper.js +25 -0
- package/dist/infra/mappers/product-collection.mapper.d.ts +8 -0
- package/dist/infra/mappers/product-collection.mapper.js +24 -0
- package/dist/infra/query-configs/collection.query-config.d.ts +3 -0
- package/dist/infra/query-configs/collection.query-config.js +46 -0
- package/dist/infra/query-configs/index.d.ts +3 -0
- package/dist/infra/query-configs/index.js +19 -0
- package/dist/infra/query-configs/post-collection.query-config.d.ts +3 -0
- package/dist/infra/query-configs/post-collection.query-config.js +31 -0
- package/dist/infra/query-configs/product-collection.query-config.d.ts +3 -0
- package/dist/infra/query-configs/product-collection.query-config.js +26 -0
- package/dist/infra/records/collection.record.d.ts +11 -0
- package/dist/infra/records/collection.record.js +2 -0
- package/dist/infra/records/index.d.ts +3 -0
- package/dist/infra/records/index.js +19 -0
- package/dist/infra/records/post-collection.record.d.ts +7 -0
- package/dist/infra/records/post-collection.record.js +2 -0
- package/dist/infra/records/product-collection.record.d.ts +7 -0
- package/dist/infra/records/product-collection.record.js +2 -0
- package/dist/presentation/controllers/index.d.ts +2 -0
- package/dist/presentation/controllers/index.js +18 -0
- package/dist/presentation/controllers/internals/index.d.ts +1 -0
- package/dist/presentation/controllers/internals/index.js +17 -0
- package/dist/presentation/controllers/internals/product-collection.internal.rest.d.ts +8 -0
- package/dist/presentation/controllers/internals/product-collection.internal.rest.js +45 -0
- package/dist/presentation/controllers/storefront/collection.storefront.rest.d.ts +26 -0
- package/dist/presentation/controllers/storefront/collection.storefront.rest.js +155 -0
- package/dist/presentation/controllers/storefront/index.d.ts +3 -0
- package/dist/presentation/controllers/storefront/index.js +19 -0
- package/dist/presentation/controllers/storefront/post-collection.storefront.d.ts +7 -0
- package/dist/presentation/controllers/storefront/post-collection.storefront.js +37 -0
- package/dist/presentation/controllers/storefront/product-collection.storefront.rest.d.ts +5 -0
- package/dist/presentation/controllers/storefront/product-collection.storefront.rest.js +50 -0
- package/dist/presentation/index.d.ts +1 -0
- package/dist/presentation/index.js +17 -0
- package/dist/shared/configs/index.d.ts +1 -0
- package/dist/shared/configs/index.js +17 -0
- package/dist/shared/configs/pagination.config.d.ts +4 -0
- package/dist/shared/configs/pagination.config.js +7 -0
- package/dist/shared/constants/collection-inject-tokens.const.d.ts +56 -0
- package/dist/shared/constants/collection-inject-tokens.const.js +61 -0
- package/dist/shared/constants/collection-table-names.const.d.ts +12 -0
- package/dist/shared/constants/collection-table-names.const.js +16 -0
- package/dist/shared/constants/component-inject-tokens.const.d.ts +7 -0
- package/dist/shared/constants/component-inject-tokens.const.js +11 -0
- package/dist/shared/constants/error-codes.const.d.ts +6 -0
- package/dist/shared/constants/error-codes.const.js +10 -0
- package/dist/shared/constants/index.d.ts +4 -0
- package/dist/shared/constants/index.js +21 -0
- package/dist/shared/core/filter.d.ts +80 -0
- package/dist/shared/core/filter.js +554 -0
- package/dist/shared/core/index.d.ts +1 -0
- package/dist/shared/core/index.js +17 -0
- package/dist/shared/index.d.ts +5 -0
- package/dist/shared/index.js +21 -0
- package/dist/shared/interfaces/ambassador-dao.interface.d.ts +5 -0
- package/dist/shared/interfaces/ambassador-dao.interface.js +2 -0
- package/dist/shared/interfaces/ambassador-usecase.interface.d.ts +16 -0
- package/dist/shared/interfaces/ambassador-usecase.interface.js +2 -0
- package/dist/shared/interfaces/campaign-service.interface.d.ts +3 -0
- package/dist/shared/interfaces/campaign-service.interface.js +4 -0
- package/dist/shared/interfaces/index.d.ts +6 -0
- package/dist/shared/interfaces/index.js +22 -0
- package/dist/shared/interfaces/post-product-dao.interface.d.ts +8 -0
- package/dist/shared/interfaces/post-product-dao.interface.js +2 -0
- package/dist/shared/interfaces/product-service.interface.d.ts +6 -0
- package/dist/shared/interfaces/product-service.interface.js +2 -0
- package/dist/shared/interfaces/ugc-management-service.interface.d.ts +11 -0
- package/dist/shared/interfaces/ugc-management-service.interface.js +2 -0
- package/dist/shared/types/common.type.d.ts +4 -0
- package/dist/shared/types/common.type.js +2 -0
- package/dist/shared/types/discount.enum.d.ts +4 -0
- package/dist/shared/types/discount.enum.js +8 -0
- package/dist/shared/types/index.d.ts +4 -0
- package/dist/shared/types/index.js +20 -0
- package/dist/shared/types/shopify.type.d.ts +28 -0
- package/dist/shared/types/shopify.type.js +2 -0
- package/dist/shared/types/ugc.type.d.ts +41 -0
- package/dist/shared/types/ugc.type.js +2 -0
- package/package.json +56 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./collection.dto"), exports);
|
|
18
|
+
__exportStar(require("./product-collection.dto"), exports);
|
|
19
|
+
__exportStar(require("./post-collection.dto"), exports);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AggregateRoot, AggregateRootConstructorPayload, IAggregateRoot } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { CollectionTypeEnum, CreateCollectionInput, UpdateCollectionInput } from '../aggregates';
|
|
3
|
+
export type CollectionProps = {
|
|
4
|
+
ambassadorId: string;
|
|
5
|
+
collectionName: string;
|
|
6
|
+
collectionType: CollectionTypeEnum;
|
|
7
|
+
description: string;
|
|
8
|
+
isFavorite: boolean;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt: Date;
|
|
11
|
+
};
|
|
12
|
+
export type CollectionMethods = {
|
|
13
|
+
create(payload: CreateCollectionInput): Promise<void>;
|
|
14
|
+
update(payload: UpdateCollectionInput): Promise<void>;
|
|
15
|
+
delete(): Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export type ICollection = IAggregateRoot<CollectionProps, CollectionMethods>;
|
|
18
|
+
export declare class Collection extends AggregateRoot<CollectionProps, CollectionMethods> implements ICollection {
|
|
19
|
+
static AGGREGATE_NAME: string;
|
|
20
|
+
constructor(payload: AggregateRootConstructorPayload<CollectionProps>);
|
|
21
|
+
/** Props **/
|
|
22
|
+
get ambassadorId(): string;
|
|
23
|
+
get collectionName(): string;
|
|
24
|
+
get collectionType(): CollectionTypeEnum;
|
|
25
|
+
get description(): string;
|
|
26
|
+
get isFavorite(): boolean;
|
|
27
|
+
get createdAt(): Date;
|
|
28
|
+
get updatedAt(): Date;
|
|
29
|
+
/** Methods **/
|
|
30
|
+
private setAmbassadorId;
|
|
31
|
+
private setCollectionName;
|
|
32
|
+
private setCollectionType;
|
|
33
|
+
private setDescription;
|
|
34
|
+
private setIsFavorite;
|
|
35
|
+
private setCreatedAt;
|
|
36
|
+
private setUpdatedAt;
|
|
37
|
+
create(payload: CreateCollectionInput): Promise<void>;
|
|
38
|
+
update(payload: UpdateCollectionInput): Promise<void>;
|
|
39
|
+
delete(): Promise<void>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Collection = void 0;
|
|
4
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
5
|
+
const aqua_1 = require("@cbidigital/aqua");
|
|
6
|
+
const consts_1 = require("../consts");
|
|
7
|
+
class Collection extends aqua_ddd_1.AggregateRoot {
|
|
8
|
+
constructor(payload) {
|
|
9
|
+
super(payload);
|
|
10
|
+
}
|
|
11
|
+
/** Props **/
|
|
12
|
+
get ambassadorId() {
|
|
13
|
+
return this.props.ambassadorId;
|
|
14
|
+
}
|
|
15
|
+
get collectionName() {
|
|
16
|
+
return this.props.collectionName;
|
|
17
|
+
}
|
|
18
|
+
get collectionType() {
|
|
19
|
+
return this.props.collectionType;
|
|
20
|
+
}
|
|
21
|
+
get description() {
|
|
22
|
+
return this.props.description;
|
|
23
|
+
}
|
|
24
|
+
get isFavorite() {
|
|
25
|
+
return this.props.isFavorite;
|
|
26
|
+
}
|
|
27
|
+
get createdAt() {
|
|
28
|
+
return this.props.createdAt;
|
|
29
|
+
}
|
|
30
|
+
get updatedAt() {
|
|
31
|
+
return this.props.updatedAt;
|
|
32
|
+
}
|
|
33
|
+
/** Methods **/
|
|
34
|
+
setAmbassadorId(payload) {
|
|
35
|
+
if (payload !== undefined)
|
|
36
|
+
this.setProp('ambassadorId', payload);
|
|
37
|
+
}
|
|
38
|
+
setCollectionName(payload) {
|
|
39
|
+
if (payload !== undefined)
|
|
40
|
+
this.setProp('collectionName', payload);
|
|
41
|
+
}
|
|
42
|
+
setCollectionType(payload) {
|
|
43
|
+
if (payload !== undefined)
|
|
44
|
+
this.setProp('collectionType', payload);
|
|
45
|
+
}
|
|
46
|
+
setDescription(payload) {
|
|
47
|
+
if (payload !== undefined)
|
|
48
|
+
this.setProp('description', payload);
|
|
49
|
+
}
|
|
50
|
+
setIsFavorite(payload) {
|
|
51
|
+
if (payload !== undefined)
|
|
52
|
+
this.setProp('isFavorite', payload);
|
|
53
|
+
}
|
|
54
|
+
setCreatedAt(payload) {
|
|
55
|
+
if (payload !== undefined)
|
|
56
|
+
this.setProp('createdAt', payload);
|
|
57
|
+
}
|
|
58
|
+
setUpdatedAt(payload) {
|
|
59
|
+
if (payload !== undefined)
|
|
60
|
+
this.setProp('updatedAt', payload);
|
|
61
|
+
}
|
|
62
|
+
async create(payload) {
|
|
63
|
+
this.setId(aqua_1.EntityIdUtil.randomUUID());
|
|
64
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
65
|
+
this.setCollectionName(payload.collectionName);
|
|
66
|
+
this.setCollectionType(payload.collectionType);
|
|
67
|
+
this.setDescription(payload.description);
|
|
68
|
+
this.setIsFavorite(payload.isFavorite);
|
|
69
|
+
this.setCreatedAt(new Date());
|
|
70
|
+
this.setUpdatedAt(new Date());
|
|
71
|
+
this.addDomainEvent(consts_1.EVENT_COLLECTION_NAMES.CREATE);
|
|
72
|
+
}
|
|
73
|
+
async update(payload) {
|
|
74
|
+
this.setCollectionName(payload.collectionName);
|
|
75
|
+
this.setCollectionType(payload.collectionType);
|
|
76
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
77
|
+
this.setDescription(payload.description);
|
|
78
|
+
this.setIsFavorite(payload.isFavorite);
|
|
79
|
+
this.setUpdatedAt(new Date());
|
|
80
|
+
this.addDomainEvent(consts_1.EVENT_COLLECTION_NAMES.UPDATE);
|
|
81
|
+
}
|
|
82
|
+
async delete() {
|
|
83
|
+
this.addDomainEvent(consts_1.EVENT_COLLECTION_NAMES.DELETE);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.Collection = Collection;
|
|
87
|
+
Collection.AGGREGATE_NAME = 'COLLECTION';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./collection.entity"), exports);
|
|
18
|
+
__exportStar(require("./product-collection.entity"), exports);
|
|
19
|
+
__exportStar(require("./post-collection.entity"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AggregateRoot, AggregateRootConstructorPayload, IAggregateRoot } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { CreatePostCollectionInput, UpdatePostCollectionInput } from '../aggregates';
|
|
3
|
+
export type PostCollectionProps = {
|
|
4
|
+
ambassadorId: string;
|
|
5
|
+
collectionId: string;
|
|
6
|
+
postId: string;
|
|
7
|
+
hidden: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type PostCollectionMethods = {
|
|
10
|
+
create(payload: CreatePostCollectionInput): Promise<void>;
|
|
11
|
+
update(payload: UpdatePostCollectionInput): Promise<void>;
|
|
12
|
+
upsert(payload: UpdatePostCollectionInput): Promise<void>;
|
|
13
|
+
delete(): Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
export type IPostCollection = IAggregateRoot<PostCollectionProps, PostCollectionMethods>;
|
|
16
|
+
export declare class PostCollection extends AggregateRoot<PostCollectionProps, PostCollectionMethods> implements IPostCollection {
|
|
17
|
+
static AGGREGATE_NAME: string;
|
|
18
|
+
constructor(payload: AggregateRootConstructorPayload<PostCollectionProps>);
|
|
19
|
+
/** Props **/
|
|
20
|
+
get ambassadorId(): string;
|
|
21
|
+
get collectionId(): string;
|
|
22
|
+
get postId(): string;
|
|
23
|
+
get hidden(): boolean;
|
|
24
|
+
/** Methods **/
|
|
25
|
+
private setAmbassadorId;
|
|
26
|
+
private setCollectionId;
|
|
27
|
+
private setPostId;
|
|
28
|
+
private setHidden;
|
|
29
|
+
create(payload: CreatePostCollectionInput): Promise<void>;
|
|
30
|
+
upsert(payload: UpdatePostCollectionInput): Promise<void>;
|
|
31
|
+
update(payload: UpdatePostCollectionInput): Promise<void>;
|
|
32
|
+
delete(): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostCollection = void 0;
|
|
4
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
5
|
+
const aqua_1 = require("@cbidigital/aqua");
|
|
6
|
+
const consts_1 = require("../consts");
|
|
7
|
+
class PostCollection extends aqua_ddd_1.AggregateRoot {
|
|
8
|
+
constructor(payload) {
|
|
9
|
+
super(payload);
|
|
10
|
+
}
|
|
11
|
+
/** Props **/
|
|
12
|
+
get ambassadorId() {
|
|
13
|
+
return this.props.ambassadorId;
|
|
14
|
+
}
|
|
15
|
+
get collectionId() {
|
|
16
|
+
return this.props.collectionId;
|
|
17
|
+
}
|
|
18
|
+
get postId() {
|
|
19
|
+
return this.props.postId;
|
|
20
|
+
}
|
|
21
|
+
get hidden() {
|
|
22
|
+
return this.props.hidden;
|
|
23
|
+
}
|
|
24
|
+
/** Methods **/
|
|
25
|
+
setAmbassadorId(payload) {
|
|
26
|
+
if (payload !== undefined)
|
|
27
|
+
this.setProp('ambassadorId', payload);
|
|
28
|
+
}
|
|
29
|
+
setCollectionId(payload) {
|
|
30
|
+
if (payload !== undefined)
|
|
31
|
+
this.setProp('collectionId', payload);
|
|
32
|
+
}
|
|
33
|
+
setPostId(payload) {
|
|
34
|
+
if (payload !== undefined)
|
|
35
|
+
this.setProp('postId', payload);
|
|
36
|
+
}
|
|
37
|
+
setHidden(payload) {
|
|
38
|
+
if (payload !== undefined)
|
|
39
|
+
this.setProp('hidden', payload);
|
|
40
|
+
}
|
|
41
|
+
async create(payload) {
|
|
42
|
+
this.setId(aqua_1.EntityIdUtil.randomUUID());
|
|
43
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
44
|
+
this.setCollectionId(payload.collectionId);
|
|
45
|
+
this.setPostId(payload.postId);
|
|
46
|
+
this.setHidden(payload.hidden);
|
|
47
|
+
this.addDomainEvent(consts_1.EVENT_POST_COLLECTION_NAMES.CREATE);
|
|
48
|
+
}
|
|
49
|
+
async upsert(payload) {
|
|
50
|
+
if (!payload?.id)
|
|
51
|
+
this.setId(aqua_1.EntityIdUtil.randomUUID());
|
|
52
|
+
this.setCollectionId(payload.collectionId);
|
|
53
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
54
|
+
this.setPostId(payload.postId);
|
|
55
|
+
this.setHidden(payload.hidden);
|
|
56
|
+
this.addDomainEvent(consts_1.EVENT_POST_COLLECTION_NAMES.UPSERT);
|
|
57
|
+
}
|
|
58
|
+
async update(payload) {
|
|
59
|
+
this.setCollectionId(payload.collectionId);
|
|
60
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
61
|
+
this.setPostId(payload.postId);
|
|
62
|
+
this.setHidden(payload.hidden);
|
|
63
|
+
this.addDomainEvent(consts_1.EVENT_POST_COLLECTION_NAMES.UPDATE);
|
|
64
|
+
}
|
|
65
|
+
async delete() {
|
|
66
|
+
this.addDomainEvent(consts_1.EVENT_POST_COLLECTION_NAMES.DELETE);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.PostCollection = PostCollection;
|
|
70
|
+
PostCollection.AGGREGATE_NAME = 'POST_COLLECTION';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AggregateRoot, AggregateRootConstructorPayload, IAggregateRoot } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { CreateProductCollectionInput, UpdateProductCollectionInput } from '../aggregates';
|
|
3
|
+
export type ProductCollectionProps = {
|
|
4
|
+
productId: string;
|
|
5
|
+
collectionId: string;
|
|
6
|
+
ambassadorId: string;
|
|
7
|
+
collectionName?: string;
|
|
8
|
+
};
|
|
9
|
+
export type ProductCollectionMethods = {
|
|
10
|
+
create(payload: CreateProductCollectionInput): Promise<void>;
|
|
11
|
+
update(payload: UpdateProductCollectionInput): Promise<void>;
|
|
12
|
+
delete(): Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export type IProductCollection = IAggregateRoot<ProductCollectionProps, ProductCollectionMethods>;
|
|
15
|
+
export declare class ProductCollection extends AggregateRoot<ProductCollectionProps, ProductCollectionMethods> implements IProductCollection {
|
|
16
|
+
static AGGREGATE_NAME: string;
|
|
17
|
+
constructor(payload: AggregateRootConstructorPayload<ProductCollectionProps>);
|
|
18
|
+
/** Props **/
|
|
19
|
+
get productId(): string;
|
|
20
|
+
get collectionId(): string;
|
|
21
|
+
get ambassadorId(): string;
|
|
22
|
+
get collectionName(): string | undefined;
|
|
23
|
+
/** Methods **/
|
|
24
|
+
private setProductId;
|
|
25
|
+
private setCollectionId;
|
|
26
|
+
private setAmbassadorId;
|
|
27
|
+
create(payload: CreateProductCollectionInput): Promise<void>;
|
|
28
|
+
update(payload: UpdateProductCollectionInput): Promise<void>;
|
|
29
|
+
delete(): Promise<void>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProductCollection = void 0;
|
|
4
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
5
|
+
const aqua_1 = require("@cbidigital/aqua");
|
|
6
|
+
const consts_1 = require("../consts");
|
|
7
|
+
class ProductCollection extends aqua_ddd_1.AggregateRoot {
|
|
8
|
+
constructor(payload) {
|
|
9
|
+
super(payload);
|
|
10
|
+
}
|
|
11
|
+
/** Props **/
|
|
12
|
+
get productId() {
|
|
13
|
+
return this.props.productId;
|
|
14
|
+
}
|
|
15
|
+
get collectionId() {
|
|
16
|
+
return this.props.collectionId;
|
|
17
|
+
}
|
|
18
|
+
get ambassadorId() {
|
|
19
|
+
return this.props.ambassadorId;
|
|
20
|
+
}
|
|
21
|
+
get collectionName() {
|
|
22
|
+
return this.props.collectionName;
|
|
23
|
+
}
|
|
24
|
+
/** Methods **/
|
|
25
|
+
setProductId(payload) {
|
|
26
|
+
if (payload !== undefined)
|
|
27
|
+
this.setProp('productId', payload);
|
|
28
|
+
}
|
|
29
|
+
setCollectionId(payload) {
|
|
30
|
+
if (payload !== undefined)
|
|
31
|
+
this.setProp('collectionId', payload);
|
|
32
|
+
}
|
|
33
|
+
setAmbassadorId(payload) {
|
|
34
|
+
if (payload !== undefined)
|
|
35
|
+
this.setProp('ambassadorId', payload);
|
|
36
|
+
}
|
|
37
|
+
async create(payload) {
|
|
38
|
+
this.setId(aqua_1.EntityIdUtil.randomUUID());
|
|
39
|
+
this.setProductId(payload.productId);
|
|
40
|
+
this.setCollectionId(payload.collectionId);
|
|
41
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
42
|
+
this.addDomainEvent(consts_1.EVENT_PRODUCT_COLLECTION_NAMES.CREATE);
|
|
43
|
+
}
|
|
44
|
+
async update(payload) {
|
|
45
|
+
this.setProductId(payload.productId);
|
|
46
|
+
this.setCollectionId(payload.collectionId);
|
|
47
|
+
this.setAmbassadorId(payload.ambassadorId);
|
|
48
|
+
this.addDomainEvent(consts_1.EVENT_PRODUCT_COLLECTION_NAMES.UPDATE);
|
|
49
|
+
}
|
|
50
|
+
async delete() {
|
|
51
|
+
this.addDomainEvent(consts_1.EVENT_PRODUCT_COLLECTION_NAMES.DELETE);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ProductCollection = ProductCollection;
|
|
55
|
+
ProductCollection.AGGREGATE_NAME = 'PRODUCT_COLLECTION';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./entities"), exports);
|
|
18
|
+
__exportStar(require("./builders"), exports);
|
|
19
|
+
__exportStar(require("./mappers"), exports);
|
|
20
|
+
__exportStar(require("./dtos"), exports);
|
|
21
|
+
__exportStar(require("./repositories"), exports);
|
|
22
|
+
__exportStar(require("./aggregates"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseMapper, IMapper } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { CollectionDto } from '../dtos';
|
|
3
|
+
import { ICollection } from '../entities';
|
|
4
|
+
import { ICollectionBuilder } from '../builders';
|
|
5
|
+
export type ICollectionMapper = IMapper<CollectionDto, ICollection>;
|
|
6
|
+
export declare class CollectionMapper extends BaseMapper implements ICollectionMapper {
|
|
7
|
+
protected readonly tierBuilder: ICollectionBuilder;
|
|
8
|
+
constructor(tierBuilder: ICollectionBuilder);
|
|
9
|
+
fromEntityToDto(entity: ICollection): Promise<CollectionDto>;
|
|
10
|
+
fromDtoToEntity(dto: CollectionDto): Promise<ICollection>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CollectionMapper = void 0;
|
|
16
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
17
|
+
const common_1 = require("@heronjs/common");
|
|
18
|
+
const shared_1 = require("../../shared");
|
|
19
|
+
let CollectionMapper = class CollectionMapper extends aqua_ddd_1.BaseMapper {
|
|
20
|
+
constructor(tierBuilder) {
|
|
21
|
+
super();
|
|
22
|
+
this.tierBuilder = tierBuilder;
|
|
23
|
+
}
|
|
24
|
+
async fromEntityToDto(entity) {
|
|
25
|
+
return {
|
|
26
|
+
id: entity.id,
|
|
27
|
+
ambassadorId: entity.ambassadorId,
|
|
28
|
+
collectionName: entity.collectionName,
|
|
29
|
+
collectionType: entity.collectionType,
|
|
30
|
+
description: entity.description,
|
|
31
|
+
isFavorite: entity.isFavorite,
|
|
32
|
+
createdAt: entity.createdAt,
|
|
33
|
+
updatedAt: entity.updatedAt,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async fromDtoToEntity(dto) {
|
|
37
|
+
return this.tierBuilder.build({
|
|
38
|
+
id: dto.id,
|
|
39
|
+
props: {
|
|
40
|
+
ambassadorId: dto.ambassadorId,
|
|
41
|
+
collectionName: dto.collectionName,
|
|
42
|
+
collectionType: dto.collectionType,
|
|
43
|
+
description: dto.description,
|
|
44
|
+
isFavorite: dto.isFavorite,
|
|
45
|
+
createdAt: dto.createdAt,
|
|
46
|
+
updatedAt: dto.updatedAt,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
CollectionMapper = __decorate([
|
|
52
|
+
(0, common_1.Provider)({ token: shared_1.COLLECTION_INJECT_TOKENS.MAPPER.COLLECTION, scope: common_1.Lifecycle.Singleton }),
|
|
53
|
+
__param(0, (0, common_1.Inject)(shared_1.COLLECTION_INJECT_TOKENS.BUILDER.COLLECTION)),
|
|
54
|
+
__metadata("design:paramtypes", [Object])
|
|
55
|
+
], CollectionMapper);
|
|
56
|
+
exports.CollectionMapper = CollectionMapper;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./collection.mapper"), exports);
|
|
18
|
+
__exportStar(require("./product-collection.mapper"), exports);
|
|
19
|
+
__exportStar(require("./post-collection.mapper"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseMapper, IMapper } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { IPostCollection } from '../entities';
|
|
3
|
+
import { PostCollectionDto } from '../dtos';
|
|
4
|
+
import { IPostCollectionBuilder } from '../builders';
|
|
5
|
+
export type IPostCollectionMapper = IMapper<PostCollectionDto, IPostCollection>;
|
|
6
|
+
export declare class PostCollectionMapper extends BaseMapper implements IPostCollectionMapper {
|
|
7
|
+
protected readonly postCollectionBuilder: IPostCollectionBuilder;
|
|
8
|
+
constructor(postCollectionBuilder: IPostCollectionBuilder);
|
|
9
|
+
fromEntityToDto(entity: IPostCollection): Promise<PostCollectionDto>;
|
|
10
|
+
fromDtoToEntity(dto: PostCollectionDto): Promise<IPostCollection>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PostCollectionMapper = void 0;
|
|
16
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
17
|
+
const common_1 = require("@heronjs/common");
|
|
18
|
+
const shared_1 = require("../../shared");
|
|
19
|
+
let PostCollectionMapper = class PostCollectionMapper extends aqua_ddd_1.BaseMapper {
|
|
20
|
+
constructor(postCollectionBuilder) {
|
|
21
|
+
super();
|
|
22
|
+
this.postCollectionBuilder = postCollectionBuilder;
|
|
23
|
+
}
|
|
24
|
+
async fromEntityToDto(entity) {
|
|
25
|
+
return {
|
|
26
|
+
id: entity.id,
|
|
27
|
+
collectionId: entity.collectionId,
|
|
28
|
+
ambassadorId: entity.ambassadorId,
|
|
29
|
+
postId: entity.postId,
|
|
30
|
+
hidden: entity.hidden,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async fromDtoToEntity(dto) {
|
|
34
|
+
return this.postCollectionBuilder.build({
|
|
35
|
+
id: dto.id,
|
|
36
|
+
props: {
|
|
37
|
+
collectionId: dto.collectionId,
|
|
38
|
+
ambassadorId: dto.ambassadorId,
|
|
39
|
+
postId: dto.postId,
|
|
40
|
+
hidden: dto.hidden,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
PostCollectionMapper = __decorate([
|
|
46
|
+
(0, common_1.Provider)({ token: shared_1.COLLECTION_INJECT_TOKENS.MAPPER.POST_COLLECTION, scope: common_1.Lifecycle.Singleton }),
|
|
47
|
+
__param(0, (0, common_1.Inject)(shared_1.COLLECTION_INJECT_TOKENS.BUILDER.POST_COLLECTION)),
|
|
48
|
+
__metadata("design:paramtypes", [Object])
|
|
49
|
+
], PostCollectionMapper);
|
|
50
|
+
exports.PostCollectionMapper = PostCollectionMapper;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseMapper, IMapper } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { ProductCollectionDto } from '../dtos';
|
|
3
|
+
import { IProductCollection } from '../entities';
|
|
4
|
+
import { IProductCollectionBuilder } from '../builders';
|
|
5
|
+
export type IProductCollectionMapper = IMapper<ProductCollectionDto, IProductCollection>;
|
|
6
|
+
export declare class ProductCollectionMapper extends BaseMapper implements IProductCollectionMapper {
|
|
7
|
+
protected readonly tierBuilder: IProductCollectionBuilder;
|
|
8
|
+
constructor(tierBuilder: IProductCollectionBuilder);
|
|
9
|
+
fromEntityToDto(entity: IProductCollection): Promise<ProductCollectionDto>;
|
|
10
|
+
fromDtoToEntity(dto: ProductCollectionDto): Promise<IProductCollection>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ProductCollectionMapper = void 0;
|
|
16
|
+
const aqua_ddd_1 = require("@cbidigital/aqua-ddd");
|
|
17
|
+
const common_1 = require("@heronjs/common");
|
|
18
|
+
const shared_1 = require("../../shared");
|
|
19
|
+
let ProductCollectionMapper = class ProductCollectionMapper extends aqua_ddd_1.BaseMapper {
|
|
20
|
+
constructor(tierBuilder) {
|
|
21
|
+
super();
|
|
22
|
+
this.tierBuilder = tierBuilder;
|
|
23
|
+
}
|
|
24
|
+
async fromEntityToDto(entity) {
|
|
25
|
+
return {
|
|
26
|
+
id: entity.id,
|
|
27
|
+
productId: entity.productId,
|
|
28
|
+
collectionId: entity.collectionId,
|
|
29
|
+
ambassadorId: entity.ambassadorId,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async fromDtoToEntity(dto) {
|
|
33
|
+
return this.tierBuilder.build({
|
|
34
|
+
id: dto.id,
|
|
35
|
+
props: {
|
|
36
|
+
productId: dto.productId,
|
|
37
|
+
collectionId: dto.collectionId,
|
|
38
|
+
ambassadorId: dto.ambassadorId,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
ProductCollectionMapper = __decorate([
|
|
44
|
+
(0, common_1.Provider)({ token: shared_1.COLLECTION_INJECT_TOKENS.MAPPER.PRODUCT_COLLECTION, scope: common_1.Lifecycle.Singleton }),
|
|
45
|
+
__param(0, (0, common_1.Inject)(shared_1.COLLECTION_INJECT_TOKENS.BUILDER.PRODUCT_COLLECTION)),
|
|
46
|
+
__metadata("design:paramtypes", [Object])
|
|
47
|
+
], ProductCollectionMapper);
|
|
48
|
+
exports.ProductCollectionMapper = ProductCollectionMapper;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseRepository, IDatabase, IRepository, QueryInput, QueryInputFindOne, RepositoryOptions } from '@cbidigital/aqua-ddd';
|
|
2
|
+
import { Optional } from '@heronjs/common';
|
|
3
|
+
import { CollectionDao } from '../../infra';
|
|
4
|
+
import { ICollection } from '../entities';
|
|
5
|
+
import { ICollectionMapper } from '../mappers';
|
|
6
|
+
export interface ICollectionRepository extends IRepository<ICollection, RepositoryOptions> {
|
|
7
|
+
}
|
|
8
|
+
export declare class CollectionRepository extends BaseRepository<ICollection> implements ICollectionRepository {
|
|
9
|
+
protected readonly db: IDatabase;
|
|
10
|
+
protected readonly collectionDao: CollectionDao;
|
|
11
|
+
protected readonly collectionMapper: ICollectionMapper;
|
|
12
|
+
constructor(db: IDatabase, collectionDao: CollectionDao, collectionMapper: ICollectionMapper);
|
|
13
|
+
create(entity: ICollection, options?: RepositoryOptions): Promise<ICollection>;
|
|
14
|
+
createList(entities: ICollection[], options?: RepositoryOptions): Promise<ICollection[]>;
|
|
15
|
+
update(entity: ICollection, options?: RepositoryOptions): Promise<ICollection>;
|
|
16
|
+
updateList(entities: ICollection[], options?: RepositoryOptions): Promise<ICollection[]>;
|
|
17
|
+
delete(entity: ICollection, options?: RepositoryOptions): Promise<ICollection>;
|
|
18
|
+
deleteList(entities: ICollection[], options?: RepositoryOptions): Promise<ICollection[]>;
|
|
19
|
+
find(input: QueryInput, options?: RepositoryOptions): Promise<ICollection[]>;
|
|
20
|
+
findOne(input: QueryInputFindOne, options?: RepositoryOptions): Promise<Optional<ICollection>>;
|
|
21
|
+
}
|