feat : improve import UI
CI / Verify (push) Successful in 1m15s
CI / Build immutable images and deploy (push) Successful in 1m50s

This commit is contained in:
2026-09-08 19:23:05 +07:00 Unverified
parent cd66d498ab
commit d85a48be25
5 changed files with 579 additions and 113 deletions
+29
View File
@@ -43,6 +43,10 @@ import {
getCatalogSyncJob,
startCatalogSyncJob,
} from "@/lib/catalog/sync";
import {
getAdminTeamImportGuide,
listAdminTeamImportGuides,
} from "@/lib/guides/queries";
const serializedBlockSchema = z.strictObject({
id: z.string().uuid(),
@@ -275,6 +279,31 @@ export async function saveTeamSection(guideId: string, input: unknown) {
return runGuideAction(() => saveTeams(guideId, input));
}
export async function listTeamImportGuides(currentGuideId: string) {
await requireAdmin();
const parsed = z.string().uuid().safeParse(currentGuideId);
if (!parsed.success) return { status: "error" as const, message: "Guide ID ไม่ถูกต้อง" };
try {
return { status: "success" as const, guides: await listAdminTeamImportGuides(parsed.data) };
} catch {
return { status: "error" as const, message: "โหลดรายการ Guide ไม่สำเร็จ" };
}
}
export async function loadTeamImportGuide(guideId: string) {
await requireAdmin();
const parsed = z.string().uuid().safeParse(guideId);
if (!parsed.success) return { status: "error" as const, message: "Guide ID ไม่ถูกต้อง" };
try {
const guide = await getAdminTeamImportGuide(parsed.data);
return guide
? { status: "success" as const, guide }
: { status: "error" as const, message: "ไม่พบ Guide นี้" };
} catch {
return { status: "error" as const, message: "โหลด Team จาก Guide ไม่สำเร็จ" };
}
}
export async function saveExtraSectionList(guideId: string, input: unknown) {
await requireAdmin();
const result = await runGuideAction(() => saveExtraSections(guideId, input));