import { Migration } from '@mikro-orm/migrations'; export class Migration20260516121012 extends Migration { override async up(): Promise { this.addSql(` DO $$ BEGIN ALTER TABLE "invoice_items" ADD COLUMN "sub_total" int GENERATED ALWAYS AS (COALESCE(unit_price, 0) * quantity) STORED NOT NULL, ADD COLUMN "total" int GENERATED ALWAYS AS ((COALESCE(unit_price, 0) * quantity) - COALESCE(discount, 0)) STORED NOT NULL; EXCEPTION WHEN duplicate_column THEN NULL; END $$; `); } override async down(): Promise { this.addSql(`alter table "invoice_items" drop column if exists "sub_total";`); this.addSql(`alter table "invoice_items" drop column if exists "total";`); } }