- terms, translations, term_glosses with cascade deletes and pos check constraint - language_pairs with source/target language check constraints and no-self-pair guard - users with openauth_sub as identity provider key - decks and deck_terms with composite PK and position ordering - indexes on all hot query paths (distractor generation, deck lookups, FK joins) - SUPPORTED_POS and SUPPORTED_LANGUAGE_CODES as single source of truth in @glossa/shared |
||
|---|---|---|
| .. | ||
| drizzle/meta | ||
| src | ||
| drizzle.config.ts | ||
| package.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||