Files
cfw-autumn/shared/models/otherModels/metadataTable.ts
John Yeo baa3b00295 wip
2026-01-29 09:44:34 +00:00

27 lines
1001 B
TypeScript

import type { InferInsertModel, InferSelectModel } from "drizzle-orm";
import { jsonb, numeric, pgTable, text } from "drizzle-orm/pg-core";
import { sqlNow } from "../../db/utils.js";
export enum MetadataType {
InvoiceActionRequired = "invoice_action_required",
InvoiceCheckout = "invoice_checkout",
CheckoutSessionCompleted = "checkout_session_completed",
DeferredInvoice = "deferred_invoice",
CheckoutSessionV2 = "checkout_session_v2",
CheckoutSessionCompletedV2 = "checkout_session_completed_v2",
}
export const metadata = pgTable("metadata", {
id: text().primaryKey().notNull(),
created_at: numeric({ mode: "number" }).notNull().default(sqlNow),
expires_at: numeric({ mode: "number" }),
data: jsonb(),
type: text("type").$type<MetadataType>(),
stripe_invoice_id: text("stripe_invoice_id"),
stripe_checkout_session_id: text("stripe_checkout_session_id"),
});
export type Metadata = InferSelectModel<typeof metadata>;
export type MetadataInsert = InferInsertModel<typeof metadata>;