import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddReservationManagementTokenAndCustomerNameSplit1787184000000 implements MigrationInterface {
	name = 'AddReservationManagementTokenAndCustomerNameSplit1787184000000'

	public async up(queryRunner: QueryRunner): Promise<void> {
		await queryRunner.query(`ALTER TABLE "reservation" ADD "customerFirstname" character varying(120)`)
		await queryRunner.query(`ALTER TABLE "reservation" ADD "customerLastname" character varying(120)`)
		await queryRunner.query(`ALTER TABLE "reservation" ADD "managementToken" character varying(64)`)
		await queryRunner.query(
			`CREATE UNIQUE INDEX "IDX_reservation_management_token" ON "reservation" ("managementToken") WHERE "managementToken" IS NOT NULL`,
		)
	}

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