Merge branch 'development' of ssh://git.eigen.co.id:2222/eigen/pos-be into development
continuous-integration/drone/tag Build was killed Details

pull/55/head devel_20.1.8
shancheas 2024-08-06 16:04:13 +07:00
commit 61d8f56385
5 changed files with 58 additions and 4 deletions

View File

@ -0,0 +1,29 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UniqueNameItem1722922766205 implements MigrationInterface {
name = 'UniqueNameItem1722922766205';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "item_bundlings" DROP CONSTRAINT "FK_a50e7abf2caba4d0394f3726b86"`,
);
await queryRunner.query(
`ALTER TABLE "items" ADD CONSTRAINT "UQ_213736582899b3599acaade2cd1" UNIQUE ("name")`,
);
await queryRunner.query(
`ALTER TABLE "item_bundlings" ADD CONSTRAINT "FK_a50e7abf2caba4d0394f3726b86" FOREIGN KEY ("item_bundling_id") REFERENCES "items"("id") ON DELETE CASCADE ON UPDATE CASCADE`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "item_bundlings" DROP CONSTRAINT "FK_a50e7abf2caba4d0394f3726b86"`,
);
await queryRunner.query(
`ALTER TABLE "items" DROP CONSTRAINT "UQ_213736582899b3599acaade2cd1"`,
);
await queryRunner.query(
`ALTER TABLE "item_bundlings" ADD CONSTRAINT "FK_a50e7abf2caba4d0394f3726b86" FOREIGN KEY ("item_bundling_id") REFERENCES "items"("id") ON DELETE CASCADE ON UPDATE CASCADE`,
);
}
}

View File

@ -22,7 +22,7 @@ export class ItemModel
extends BaseStatusModel<ItemEntity>
implements ItemEntity
{
@Column('varchar', { name: 'name' })
@Column('varchar', { name: 'name', unique: true })
name: string;
@Column('varchar', { name: 'image_url', nullable: true })
@ -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[];
}

View File

@ -26,7 +26,12 @@ export class BatchDeleteItemManager extends BaseBatchDeleteManager<ItemEntity> {
}
get validateRelations(): validateRelations[] {
return [];
return [
{
relation: 'bundling_parents',
message: `Gagal! Item sudah berelasi dengen bundling`,
},
];
}
get entityTarget(): any {

View File

@ -33,7 +33,7 @@ export class CreateItemManager extends BaseCreateManager<ItemEntity> {
}
get uniqueColumns(): columnUniques[] {
return [];
return [{ column: 'name' }];
}
get eventTopics(): EventTopics[] {

View File

@ -29,7 +29,12 @@ export class DeleteItemManager extends BaseDeleteManager<ItemEntity> {
}
get validateRelations(): validateRelations[] {
return [];
return [
{
relation: 'bundling_parents',
message: `Gagal! Item sudah berelasi dengen bundling`,
},
];
}
get entityTarget(): any {