import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddUserModifiableProperties1696844615445 implements MigrationInterface {
	name = 'AddUserModifiableProperties1696844615445'

	public async up(queryRunner: QueryRunner): Promise<void> {
		await queryRunner.query(`ALTER TABLE "menu_item" ADD "createdBy" uuid`)
		await queryRunner.query(`ALTER TABLE "menu_item" ADD "lastUpdatedAt" TIMESTAMP NOT NULL DEFAULT now()`)
		await queryRunner.query(`ALTER TABLE "menu_item" ADD "lastUpdatedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "menu_item" ADD "deletedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "category" ADD "createdBy" uuid`)
		await queryRunner.query(`ALTER TABLE "category" ADD "lastUpdatedAt" TIMESTAMP NOT NULL DEFAULT now()`)
		await queryRunner.query(`ALTER TABLE "category" ADD "lastUpdatedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "category" ADD "deletedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "table" ADD "createdBy" uuid`)
		await queryRunner.query(`ALTER TABLE "table" ADD "lastUpdatedAt" TIMESTAMP NOT NULL DEFAULT now()`)
		await queryRunner.query(`ALTER TABLE "table" ADD "lastUpdatedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "table" ADD "deletedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "user" ADD "createdBy" uuid`)
		await queryRunner.query(`ALTER TABLE "user" ADD "lastUpdatedAt" TIMESTAMP NOT NULL DEFAULT now()`)
		await queryRunner.query(`ALTER TABLE "user" ADD "lastUpdatedBy" uuid`)
		await queryRunner.query(`ALTER TABLE "user" ADD "deletedBy" uuid`)
	}

	public async down(queryRunner: QueryRunner): Promise<void> {
		await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "deletedBy"`)
		await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "lastUpdatedBy"`)
		await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "lastUpdatedAt"`)
		await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "createdBy"`)
		await queryRunner.query(`ALTER TABLE "table" DROP COLUMN "deletedBy"`)
		await queryRunner.query(`ALTER TABLE "table" DROP COLUMN "lastUpdatedBy"`)
		await queryRunner.query(`ALTER TABLE "table" DROP COLUMN "lastUpdatedAt"`)
		await queryRunner.query(`ALTER TABLE "table" DROP COLUMN "createdBy"`)
		await queryRunner.query(`ALTER TABLE "category" DROP COLUMN "deletedBy"`)
		await queryRunner.query(`ALTER TABLE "category" DROP COLUMN "lastUpdatedBy"`)
		await queryRunner.query(`ALTER TABLE "category" DROP COLUMN "lastUpdatedAt"`)
		await queryRunner.query(`ALTER TABLE "category" DROP COLUMN "createdBy"`)
		await queryRunner.query(`ALTER TABLE "menu_item" DROP COLUMN "deletedBy"`)
		await queryRunner.query(`ALTER TABLE "menu_item" DROP COLUMN "lastUpdatedBy"`)
		await queryRunner.query(`ALTER TABLE "menu_item" DROP COLUMN "lastUpdatedAt"`)
		await queryRunner.query(`ALTER TABLE "menu_item" DROP COLUMN "createdBy"`)
	}
}
