import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddReservationIdempotencyToken1781119800000 implements MigrationInterface {
	name = 'AddReservationIdempotencyToken1781119800000'

	public async up(queryRunner: QueryRunner): Promise<void> {
		await queryRunner.query(`ALTER TABLE "reservation" ADD "idempotencyToken" character varying(128)`)
		await queryRunner.query(
			`CREATE UNIQUE INDEX "IDX_reservation_tenant_idempotency_token" ON "reservation" ("tenantId", "idempotencyToken") WHERE "idempotencyToken" IS NOT NULL`,
		)
	}

	public async down(queryRunner: QueryRunner): Promise<void> {
		await queryRunner.query(`DROP INDEX "IDX_reservation_tenant_idempotency_token"`)
		await queryRunner.query(`ALTER TABLE "reservation" DROP COLUMN "idempotencyToken"`)
	}
}
