28 lines
969 B
TypeScript
28 lines
969 B
TypeScript
import { prisma } from "@/lib/db";
|
|
|
|
export async function getPublishedMelodies(categorySlug?: string) {
|
|
return prisma.melody.findMany({
|
|
where: {
|
|
status: "PUBLISHED",
|
|
category: categorySlug ? { slug: categorySlug, kind: "MELODY" } : undefined,
|
|
},
|
|
orderBy: [{ isFeatured: "desc" }, { sortOrder: "asc" }, { createdAt: "desc" }, { titleEn: "asc" }],
|
|
include: { category: { select: { slug: true, nameAr: true, nameEn: true } } },
|
|
});
|
|
}
|
|
|
|
export async function getMelodyCategories() {
|
|
return prisma.category.findMany({
|
|
where: { kind: "MELODY" },
|
|
orderBy: [{ order: "asc" }, { nameEn: "asc" }],
|
|
select: { id: true, slug: true, nameAr: true, nameEn: true, _count: { select: { melodies: true } } },
|
|
});
|
|
}
|
|
|
|
export async function getPublishedMelody(slug: string) {
|
|
return prisma.melody.findFirst({
|
|
where: { slug, status: "PUBLISHED" },
|
|
include: { category: { select: { slug: true, nameAr: true, nameEn: true } } },
|
|
});
|
|
}
|