From 2bf5aeb1c0597287d2a336f9891ff0674def26b4 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Mon, 9 Feb 2026 18:51:30 -0800 Subject: [PATCH] db: change anime category number type to number --- package.json | 1 + src/lib/db/client-db/seed.ts | 2 +- src/lib/db/import-amq.ts | 2 +- src/lib/db/schema/tables/anime.ts | 10 ++++++++-- src/lib/types/amq/anime.ts | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0600c06..16274e4 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "dev": "vite dev", "build": "vite build", "preview": "bun run build && wrangler dev", + "db:push": "drizzle-kit push", "db:import": "bun run src/lib/db/import-amq.ts", "format": "biome check --write", "prepare": "svelte-kit sync || echo ''", diff --git a/src/lib/db/client-db/seed.ts b/src/lib/db/client-db/seed.ts index 1c1e7ed..277b0b8 100644 --- a/src/lib/db/client-db/seed.ts +++ b/src/lib/db/client-db/seed.ts @@ -14,7 +14,7 @@ import { getClientDb } from "$lib/db/client-db"; * This is intended for READ-ONLY browsing. Bump the version when you ship a new * snapshot so clients refresh. */ -export const AMQ_DB_SEED_VERSION = 3; +export const AMQ_DB_SEED_VERSION = 4; const SEED_ASSET_PATH = "/data/amq.sqlite"; const seededStorageKey = (version: number) => `amq.sqlocal.seeded.v${version}`; diff --git a/src/lib/db/import-amq.ts b/src/lib/db/import-amq.ts index ba7f972..c35352e 100644 --- a/src/lib/db/import-amq.ts +++ b/src/lib/db/import-amq.ts @@ -375,7 +375,7 @@ export async function importAmqData( malId: a.malId, kitsuId: a.kitsuId, categoryName: a.category.name, - categoryNumber: categoryNumberToText(a.category.number), + categoryNumber: a.category.number, mainName: a.mainName, mainNameEn: a.mainNames.EN, mainNameJa: a.mainNames.JA, diff --git a/src/lib/db/schema/tables/anime.ts b/src/lib/db/schema/tables/anime.ts index 017f984..6a5077d 100644 --- a/src/lib/db/schema/tables/anime.ts +++ b/src/lib/db/schema/tables/anime.ts @@ -1,4 +1,10 @@ -import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core"; +import { + index, + integer, + real, + sqliteTable, + text, +} from "drizzle-orm/sqlite-core"; /** * Core `anime` table. @@ -21,7 +27,7 @@ export const anime = sqliteTable( // Category object (name + number that can be number|string|null in source) categoryName: text("category_name").notNull(), - categoryNumber: text("category_number"), + categoryNumber: real("category_number"), // Names mainName: text("main_name").notNull(), diff --git a/src/lib/types/amq/anime.ts b/src/lib/types/amq/anime.ts index 47b4d97..701c64e 100644 --- a/src/lib/types/amq/anime.ts +++ b/src/lib/types/amq/anime.ts @@ -37,7 +37,7 @@ export const AmqAnimeSchema = z.object({ kitsuId: z.int().positive().nullable(), category: z.object({ name: AmqAnimeCategory, - number: z.union([z.number(), z.string()]).nullable(), + number: z.coerce.number().nullable(), }), genres: z.array(AmqAnimeGenre), tags: z.array(AmqAnimeTag),