import { MigrationInterface, QueryRunner } from 'typeorm'; export class CreateTimeGroupTable1748409891706 implements MigrationInterface { name = 'CreateTimeGroupTable1748409891706'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query( `CREATE TYPE "public"."time_groups_status_enum" AS ENUM('active', 'cancel', 'confirmed', 'draft', 'expired', 'inactive', 'partial refund', 'pending', 'proses refund', 'refunded', 'rejected', 'settled', 'waiting')`, ); await queryRunner.query( `CREATE TABLE "time_groups" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "creator_id" character varying(36), "creator_name" character varying(125), "editor_id" character varying(36), "editor_name" character varying(125), "created_at" bigint NOT NULL, "updated_at" bigint NOT NULL, "status" "public"."time_groups_status_enum" NOT NULL DEFAULT 'draft', "name" character varying NOT NULL, "start_time" TIME NOT NULL, "end_time" TIME NOT NULL, "max_usage_time" TIME NOT NULL, CONSTRAINT "PK_083d02988db7bedfe3b7c869b50" PRIMARY KEY ("id"))`, ); await queryRunner.query(`ALTER TABLE "items" ADD "time_group_id" uuid`); await queryRunner.query( `ALTER TABLE "items" ADD CONSTRAINT "FK_f44f222e1808448dca1b6cc4557" FOREIGN KEY ("time_group_id") REFERENCES "time_groups"("id") ON DELETE CASCADE ON UPDATE CASCADE`, ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query( `ALTER TABLE "items" DROP CONSTRAINT "FK_f44f222e1808448dca1b6cc4557"`, ); await queryRunner.query(`ALTER TABLE "items" DROP COLUMN "time_group_id"`); await queryRunner.query(`DROP TABLE "time_groups"`); await queryRunner.query(`DROP TYPE "public"."time_groups_status_enum"`); } }