import { prisma } from "@/lib/prisma";

export async function getServices() {
  return prisma.service.findMany({
    where: { isActive: true },
    orderBy: { orderIndex: "asc" },
  });
}

export async function getServiceBySlug(slug: string) {
  return prisma.service.findFirst({
    where: {
      OR: [{ slugId: slug }, { slugEn: slug }],
      isActive: true,
    },
  });
}

export async function getPortofolios() {
  return prisma.portofolio.findMany({
    orderBy: { createdAt: "desc" },
  });
}

export async function getPortofolioBySlug(slug: string) {
  return prisma.portofolio.findFirst({
    where: {
      OR: [{ slugId: slug }, { slugEn: slug }],
    },
  });
}

export async function getTestimonials() {
  return prisma.testimonial.findMany({
    where: { isActive: true },
    orderBy: { createdAt: "desc" },
  });
}

export async function getClients() {
  return prisma.client.findMany({
    where: { isActive: true },
    orderBy: { createdAt: "desc" },
  });
}

export async function getBlogPosts() {
  return prisma.blogPost.findMany({
    where: { isPublished: true },
    include: { category: true },
    orderBy: { createdAt: "desc" },
  });
}

export async function getBlogPostBySlug(slug: string) {
  return prisma.blogPost.findFirst({
    where: {
      OR: [{ slugId: slug }, { slugEn: slug }],
      isPublished: true,
    },
    include: { category: true },
  });
}

export async function getBlogCategories() {
  return prisma.blogCategory.findMany();
}

export async function getSettings() {
  const settings = await prisma.siteSetting.findMany();
  const result: Record<string, string> = {};
  settings.forEach((s) => {
    result[s.key] = s.value || "";
  });
  return result;
}

export async function createLead(data: {
  name: string;
  email: string;
  phone?: string;
  company?: string;
  serviceInterest?: string;
  message?: string;
  source?: string;
}) {
  return prisma.lead.create({ data });
}
