mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 01:21:09 +02:00
Package uses moduleResolution: NodeNext which requires explicit .js extensions on relative ESM imports. Without these, prepare/build failed and broke pnpm install for the whole monorepo. The implicit-any errors on (table) callbacks were cascading from the broken imports — they resolve once the modules import correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
1.2 KiB
TypeScript
26 lines
1.2 KiB
TypeScript
import { text, integer, decimal, date, timestamp, index } from 'drizzle-orm/pg-core';
|
|
import { cardsSchema } from './schema.js';
|
|
|
|
export const userStats = cardsSchema.table(
|
|
'user_stats',
|
|
{
|
|
userId: text('user_id').primaryKey(),
|
|
totalWins: integer('total_wins').default(0).notNull(),
|
|
totalSessions: integer('total_sessions').default(0).notNull(),
|
|
totalCardsStudied: integer('total_cards_studied').default(0).notNull(),
|
|
totalTimeSeconds: integer('total_time_seconds').default(0).notNull(),
|
|
averageAccuracy: decimal('average_accuracy', { precision: 5, scale: 2 }).default('0').notNull(),
|
|
streakDays: integer('streak_days').default(0).notNull(),
|
|
longestStreak: integer('longest_streak').default(0).notNull(),
|
|
lastStudyDate: date('last_study_date'),
|
|
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
},
|
|
(table) => [
|
|
index('idx_user_stats_total_wins').on(table.totalWins),
|
|
index('idx_user_stats_streak_days').on(table.streakDays),
|
|
]
|
|
);
|
|
|
|
export type UserStats = typeof userStats.$inferSelect;
|
|
export type NewUserStats = typeof userStats.$inferInsert;
|