Spaces:
Sleeping
Sleeping
Merge pull request #23 from PBL6-team-CATS/fix/menu-items
Browse files
backend/src/common/enums/MenuItemType.enum.ts
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export enum MenuItemType {
|
2 |
+
MON_CHINH = 'monchinh', // món chính
|
3 |
+
TRANG_MIENG = 'trangmieng', // tráng miệng
|
4 |
+
GIAI_KHAT = 'giaikhat', // giải khát
|
5 |
+
KHAC = 'khac', // khác
|
6 |
+
}
|
backend/src/entities/menu-item.entity.ts
CHANGED
@@ -2,12 +2,12 @@ import {
|
|
2 |
BaseEntity,
|
3 |
Column,
|
4 |
Entity,
|
5 |
-
ManyToOne,
|
6 |
OneToMany,
|
7 |
PrimaryColumn,
|
8 |
Relation,
|
9 |
} from 'typeorm';
|
10 |
import { BranchMenuEntity } from './branch-menu.entity.js';
|
|
|
11 |
|
12 |
@Entity('menu_items')
|
13 |
export class MenuItemEntity extends BaseEntity {
|
@@ -20,8 +20,8 @@ export class MenuItemEntity extends BaseEntity {
|
|
20 |
@Column({ nullable: true })
|
21 |
image_url: string;
|
22 |
|
23 |
-
@Column({
|
24 |
-
|
25 |
|
26 |
@Column()
|
27 |
description: string;
|
|
|
2 |
BaseEntity,
|
3 |
Column,
|
4 |
Entity,
|
|
|
5 |
OneToMany,
|
6 |
PrimaryColumn,
|
7 |
Relation,
|
8 |
} from 'typeorm';
|
9 |
import { BranchMenuEntity } from './branch-menu.entity.js';
|
10 |
+
import { MenuItemType } from '../common/enums/MenuItemType.enum.js';
|
11 |
|
12 |
@Entity('menu_items')
|
13 |
export class MenuItemEntity extends BaseEntity {
|
|
|
20 |
@Column({ nullable: true })
|
21 |
image_url: string;
|
22 |
|
23 |
+
@Column({ type: 'enum', enum: MenuItemType, default: 'khac' })
|
24 |
+
item_type: MenuItemType;
|
25 |
|
26 |
@Column()
|
27 |
description: string;
|
backend/src/migrations/1729877042750-MoveMenuItemType.ts
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
2 |
+
|
3 |
+
export class MoveMenuItemType1729877042750 implements MigrationInterface {
|
4 |
+
name = 'MoveMenuItemType1729877042750'
|
5 |
+
|
6 |
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
7 |
+
await queryRunner.query(`ALTER TABLE "menu_items" RENAME COLUMN "item_group_id" TO "item_type"`);
|
8 |
+
await queryRunner.query(`ALTER TABLE "menu_items" DROP COLUMN "item_type"`);
|
9 |
+
await queryRunner.query(`CREATE TYPE "public"."menu_items_item_type_enum" AS ENUM('monchinh', 'trangmieng', 'giaikhat', 'khac')`);
|
10 |
+
await queryRunner.query(`ALTER TABLE "menu_items" ADD "item_type" "public"."menu_items_item_type_enum" NOT NULL DEFAULT 'khac'`);
|
11 |
+
}
|
12 |
+
|
13 |
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
14 |
+
await queryRunner.query(`ALTER TABLE "menu_items" DROP COLUMN "item_type"`);
|
15 |
+
await queryRunner.query(`DROP TYPE "public"."menu_items_item_type_enum"`);
|
16 |
+
await queryRunner.query(`ALTER TABLE "menu_items" ADD "item_type" character varying`);
|
17 |
+
await queryRunner.query(`ALTER TABLE "menu_items" RENAME COLUMN "item_type" TO "item_group_id"`);
|
18 |
+
}
|
19 |
+
|
20 |
+
}
|
backend/src/modules/menu-item/menu-item.service.ts
CHANGED
@@ -20,13 +20,7 @@ export class MenuItemService {
|
|
20 |
|
21 |
async findAll(query: PaginateQuery) {
|
22 |
const paginateConfig: PaginateConfig<MenuItemEntity> = {
|
23 |
-
sortableColumns: [
|
24 |
-
'id',
|
25 |
-
'item_group_id',
|
26 |
-
'item_name',
|
27 |
-
'price',
|
28 |
-
'create_at',
|
29 |
-
],
|
30 |
nullSort: 'last',
|
31 |
defaultSortBy: [['id', 'DESC']],
|
32 |
searchableColumns: ['item_name'],
|
@@ -37,6 +31,7 @@ export class MenuItemService {
|
|
37 |
FilterOperator.GT,
|
38 |
FilterOperator.GTE,
|
39 |
],
|
|
|
40 |
},
|
41 |
};
|
42 |
return paginate(query, MenuItemEntity.createQueryBuilder(), paginateConfig);
|
|
|
20 |
|
21 |
async findAll(query: PaginateQuery) {
|
22 |
const paginateConfig: PaginateConfig<MenuItemEntity> = {
|
23 |
+
sortableColumns: ['id', 'item_type', 'item_name', 'price', 'create_at'],
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
nullSort: 'last',
|
25 |
defaultSortBy: [['id', 'DESC']],
|
26 |
searchableColumns: ['item_name'],
|
|
|
31 |
FilterOperator.GT,
|
32 |
FilterOperator.GTE,
|
33 |
],
|
34 |
+
item_type: [FilterOperator.EQ]
|
35 |
},
|
36 |
};
|
37 |
return paginate(query, MenuItemEntity.createQueryBuilder(), paginateConfig);
|