db: split schema into separate files

This commit is contained in:
2026-02-05 19:19:25 -08:00
parent c8f577dab8
commit 88218b3567
17 changed files with 665 additions and 501 deletions

View File

@@ -0,0 +1,40 @@
import {
index,
integer,
sqliteTable,
text,
uniqueIndex,
} from "drizzle-orm/sqlite-core";
import { animeTable } from "./anime";
/**
* Additional localized/alternative names for an anime.
*
* Source: AmqAnimeSchema.names
* - language: "EN" | "JA" (per source)
* - name: string
*/
export const animeNamesTable = sqliteTable(
"anime_names",
{
id: integer("id").notNull().primaryKey({ autoIncrement: true }),
annId: integer("ann_id")
.notNull()
.references(() => animeTable.annId, { onDelete: "cascade" }),
/** "EN" | "JA" per source */
language: text("language").notNull(),
name: text("name").notNull(),
},
(t) => ({
animeIndex: index("anime_names_ann_id_idx").on(t.annId),
nameIndex: index("anime_names_name_idx").on(t.name),
uniquePerAnime: uniqueIndex("anime_names_ann_lang_name_uq").on(
t.annId,
t.language,
t.name,
),
}),
);