feat: normalize catalog tables and current character assets
CI / Verify (push) Successful in 1m12s
CI / Build immutable images and deploy (push) Successful in 1m17s

This commit is contained in:
2026-08-31 22:46:06 +07:00 Unverified
parent 83f9c07156
commit 737b54bff8
11 changed files with 7846 additions and 157 deletions
+3 -3
View File
@@ -8,7 +8,7 @@ import {
artifactProfiles,
artifactRecommendations,
catalogArtifacts,
catalogCharacters,
catalogCharacterCurrent,
catalogSyncJobs,
catalogVersions,
catalogWeapons,
@@ -54,7 +54,7 @@ export async function createGuide(input: unknown) {
const db = getDb();
const [version] = await db.select().from(catalogVersions).where(eq(catalogVersions.active, true)).limit(1);
if (!version) throw new Error("กรุณา Sync ข้อมูล Lunaris ก่อนสร้างคู่มือ");
const [character] = await db.select().from(catalogCharacters).where(and(eq(catalogCharacters.version, version.version), eq(catalogCharacters.key, parsed.characterKey))).limit(1);
const [character] = await db.select().from(catalogCharacterCurrent).where(eq(catalogCharacterCurrent.key, parsed.characterKey)).limit(1);
if (!character) throw new Error("ไม่พบตัวละครใน Catalog เวอร์ชันปัจจุบัน");
const [cover] = await db.select().from(media).where(and(eq(media.id, parsed.coverMediaId), eq(media.status, "ready"))).limit(1);
if (!cover) throw new Error("กรุณาอัปโหลดภาพ Guide ให้สำเร็จ");
@@ -154,7 +154,7 @@ export async function saveTeams(guideId: string, input: unknown) {
const weaponKeys = [...new Set(members.map((member) => member.weaponKey).filter((key): key is string => Boolean(key)))];
const artifactKeys = [...new Set(members.map((member) => member.artifactKey).filter((key): key is string => Boolean(key)))];
const [characters, weapons, artifacts] = await Promise.all([
characterKeys.length ? getDb().select().from(catalogCharacters).where(and(eq(catalogCharacters.version, guide.catalogVersion), inArray(catalogCharacters.key, characterKeys))) : [],
characterKeys.length ? getDb().select().from(catalogCharacterCurrent).where(inArray(catalogCharacterCurrent.key, characterKeys)) : [],
weaponKeys.length ? getDb().select().from(catalogWeapons).where(and(eq(catalogWeapons.version, guide.catalogVersion), inArray(catalogWeapons.key, weaponKeys))) : [],
artifactKeys.length ? getDb().select().from(catalogArtifacts).where(and(eq(catalogArtifacts.version, guide.catalogVersion), inArray(catalogArtifacts.key, artifactKeys))) : [],
]);