doatlas-2 / lib /db /src /schema /usageEvents.ts
Iostream-Li's picture
Add files using upload-large-folder tool
9c12e58 verified
import {
pgTable,
text,
timestamp,
integer,
index,
} from "drizzle-orm/pg-core";
import { users } from "./users";
export const usageEvents = pgTable(
"usage_events",
{
id: text("id").primaryKey(),
userId: text("user_id")
.notNull()
.references(() => users.id, { onDelete: "cascade" }),
conversationId: text("conversation_id"),
messageId: text("message_id"),
modelId: text("model_id").notNull(),
inputTokens: integer("input_tokens").notNull().default(0),
outputTokens: integer("output_tokens").notNull().default(0),
createdAt: timestamp("created_at", { withTimezone: true })
.notNull()
.defaultNow(),
},
(t) => ({
userIdx: index("usage_events_user_idx").on(t.userId),
createdIdx: index("usage_events_created_idx").on(t.createdAt),
}),
);
export type UsageEvent = typeof usageEvents.$inferSelect;