diff --git a/src/modules/item-related/item/data/models/item.model.ts b/src/modules/item-related/item/data/models/item.model.ts index 1ad37d5..d22b338 100644 --- a/src/modules/item-related/item/data/models/item.model.ts +++ b/src/modules/item-related/item/data/models/item.model.ts @@ -116,4 +116,19 @@ export class ItemModel onUpdate: 'CASCADE', }) gates: GateModel[]; + + // relasi untuk mendapatkan parent bundling + @ManyToMany(() => ItemModel, (model) => model.bundling_parents) + @JoinTable({ + name: 'item_bundlings', + joinColumn: { + name: 'item_id', + referencedColumnName: 'id', + }, + inverseJoinColumn: { + name: 'item_bundling_id', + referencedColumnName: 'id', + }, + }) + bundling_parents: ItemModel[]; } diff --git a/src/modules/item-related/item/domain/usecases/managers/batch-delete-item.manager.ts b/src/modules/item-related/item/domain/usecases/managers/batch-delete-item.manager.ts index d36aecd..66fc2b6 100644 --- a/src/modules/item-related/item/domain/usecases/managers/batch-delete-item.manager.ts +++ b/src/modules/item-related/item/domain/usecases/managers/batch-delete-item.manager.ts @@ -26,7 +26,12 @@ export class BatchDeleteItemManager extends BaseBatchDeleteManager { } get validateRelations(): validateRelations[] { - return []; + return [ + { + relation: 'bundling_parents', + message: `Gagal! Item sudah berelasi dengen bundling`, + }, + ]; } get entityTarget(): any { diff --git a/src/modules/item-related/item/domain/usecases/managers/delete-item.manager.ts b/src/modules/item-related/item/domain/usecases/managers/delete-item.manager.ts index ea95c6f..cb56206 100644 --- a/src/modules/item-related/item/domain/usecases/managers/delete-item.manager.ts +++ b/src/modules/item-related/item/domain/usecases/managers/delete-item.manager.ts @@ -29,7 +29,12 @@ export class DeleteItemManager extends BaseDeleteManager { } get validateRelations(): validateRelations[] { - return []; + return [ + { + relation: 'bundling_parents', + message: `Gagal! Item sudah berelasi dengen bundling`, + }, + ]; } get entityTarget(): any {