import { MigrationInterface, QueryRunner } from "typeorm"

export class CreateCompanySettingsTable1761820105013 implements MigrationInterface {
  name = "CreateCompanySettingsTable1761820105013"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "company_settings" ("created_by" integer, "updated_by" integer, "deleted_by" integer, "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, "id" SERIAL NOT NULL, "company_id" integer NOT NULL, "working_hours_per_day" numeric(5,2), "working_days_per_month" integer, "notes" text, CONSTRAINT "PK_036b4634217db79c17305442dbe" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" ADD CONSTRAINT "FK_fb248a705de5a0b7dcc01b75c86" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" ADD CONSTRAINT "FK_b65157daa96b4951594aaca3283" FOREIGN KEY ("updated_by") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" ADD CONSTRAINT "FK_21fef09158da434fbd342fdda7b" FOREIGN KEY ("deleted_by") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" ADD CONSTRAINT "FK_717089d5a18a8b594c0184663ae" FOREIGN KEY ("company_id") REFERENCES "companies"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "company_settings" DROP CONSTRAINT "FK_717089d5a18a8b594c0184663ae"`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" DROP CONSTRAINT "FK_21fef09158da434fbd342fdda7b"`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" DROP CONSTRAINT "FK_b65157daa96b4951594aaca3283"`,
    )
    await queryRunner.query(
      `ALTER TABLE "company_settings" DROP CONSTRAINT "FK_fb248a705de5a0b7dcc01b75c86"`,
    )
    await queryRunner.query(`DROP TABLE "company_settings"`)
  }
}
