import { Migration } from '@mikro-orm/migrations'; export class Migration20260404112450 extends Migration { override async up(): Promise { this.addSql(`alter table "invoices" alter column "invoice_number" type int using ("invoice_number"::int);`); this.addSql(`alter table "invoices" alter column "discount" type int using ("discount"::int);`); this.addSql(`alter table "invoices" alter column "discount" set not null;`); this.addSql(`alter table "invoices" alter column "sub_total" type int using ("sub_total"::int);`); this.addSql(`alter table "invoices" alter column "sub_total" set not null;`); this.addSql(`alter table "invoices" alter column "tax_amount" type int using ("tax_amount"::int);`); this.addSql(`alter table "invoices" alter column "tax_amount" set not null;`); this.addSql(`alter table "invoices" alter column "total" type int using ("total"::int);`); this.addSql(`alter table "invoices" alter column "total" set not null;`); this.addSql(`alter table "invoices" alter column "balance" drop default;`); this.addSql(`alter table "invoices" alter column "balance" type int using ("balance"::int);`); this.addSql(`alter table "invoices" alter column "invoice_number" drop default;`); this.addSql(`alter table "invoices" add constraint "invoices_invoice_number_unique" unique ("invoice_number");`); } override async down(): Promise { this.addSql(`alter table "invoices" drop constraint "invoices_invoice_number_unique";`); this.addSql(`alter table "invoices" alter column "invoice_number" type int using ("invoice_number"::int);`); this.addSql(`alter table "invoices" alter column "discount" type int using ("discount"::int);`); this.addSql(`alter table "invoices" alter column "discount" drop not null;`); this.addSql(`alter table "invoices" alter column "sub_total" type int using ("sub_total"::int);`); this.addSql(`alter table "invoices" alter column "sub_total" drop not null;`); this.addSql(`alter table "invoices" alter column "tax_amount" type int using ("tax_amount"::int);`); this.addSql(`alter table "invoices" alter column "tax_amount" drop not null;`); this.addSql(`alter table "invoices" alter column "total" type int using ("total"::int);`); this.addSql(`alter table "invoices" alter column "total" drop not null;`); this.addSql(`alter table "invoices" alter column "balance" type int using ("balance"::int);`); this.addSql(`alter table "invoices" alter column "balance" set default 0;`); this.addSql(`create sequence if not exists "invoices_invoice_number_seq";`); this.addSql(`select setval('invoices_invoice_number_seq', (select max("invoice_number") from "invoices"));`); this.addSql(`alter table "invoices" alter column "invoice_number" set default nextval('invoices_invoice_number_seq');`); } }