27 lines
835 B
TypeScript
Executable File
27 lines
835 B
TypeScript
Executable File
import { eq, and, isNull, desc } from "drizzle-orm";
|
|
import { db, adventureTemplates, adventureItems } from "@/lib/db";
|
|
|
|
export async function listTemplates(userId: string) {
|
|
return db
|
|
.select()
|
|
.from(adventureTemplates)
|
|
.where(and(eq(adventureTemplates.userId, userId), isNull(adventureTemplates.deletedAt)))
|
|
.orderBy(desc(adventureTemplates.sortPriority));
|
|
}
|
|
|
|
export async function findTemplateById(templateId: string) {
|
|
const [row] = await db
|
|
.select()
|
|
.from(adventureTemplates)
|
|
.where(eq(adventureTemplates.id, templateId));
|
|
return row ?? null;
|
|
}
|
|
|
|
export async function listTemplateItems(templateId: string) {
|
|
return db
|
|
.select()
|
|
.from(adventureItems)
|
|
.where(and(eq(adventureItems.templateId, templateId), isNull(adventureItems.deletedAt)))
|
|
.orderBy(adventureItems.sortOrder);
|
|
}
|