Files
dmenu-api/database/migrations/Migration20260704120000_addRestaurantCreditRequests.ts
2026-07-04 10:55:02 +03:30

35 lines
1.6 KiB
TypeScript

import { Migration } from '@mikro-orm/migrations';
export class Migration20260704120000_addRestaurantCreditRequests extends Migration {
override async up(): Promise<void> {
this.addSql(`
create table "restaurant_credit_requests" (
"id" char(26) not null,
"created_at" timestamptz not null default now(),
"updated_at" timestamptz not null default now(),
"deleted_at" timestamptz null,
"restaurant_id" char(26) not null,
"amount" numeric(10,0) not null,
"invoice_id" varchar(255) not null,
"status" text check ("status" in ('pending', 'paid', 'cancelled', 'failed')) not null default 'pending',
constraint "restaurant_credit_requests_pkey" primary key ("id")
);
`);
this.addSql(`create index "restaurant_credit_requests_created_at_index" on "restaurant_credit_requests" ("created_at");`);
this.addSql(`create index "restaurant_credit_requests_deleted_at_index" on "restaurant_credit_requests" ("deleted_at");`);
this.addSql(`create index "restaurant_credit_requests_restaurant_id_index" on "restaurant_credit_requests" ("restaurant_id");`);
this.addSql(`
alter table "restaurant_credit_requests"
add constraint "restaurant_credit_requests_restaurant_id_foreign"
foreign key ("restaurant_id") references "restaurants" ("id") on update cascade;
`);
}
override async down(): Promise<void> {
this.addSql(`alter table "restaurant_credit_requests" drop constraint if exists "restaurant_credit_requests_restaurant_id_foreign";`);
this.addSql(`drop table if exists "restaurant_credit_requests" cascade;`);
}
}