import { prisma } from "@/lib/prisma";
import { loginSchema } from "@/validators/auth.validator";
import { UnauthorizedError } from "@/lib/errors";

export const authService = {
  login: async (input: unknown) => {
    // 1. validation input
    const data = loginSchema.parse(input);

    // 2. chercher admin en DB
    const admin = await prisma.admin.findUnique({
      where: { email: data.email },
    });

    if (!admin) {
      throw new UnauthorizedError("Invalid credentials");
    }

    // 3. vérification password (version simple)
    // ⚠️ en production réelle → bcrypt obligatoire
    if (admin.password !== data.password) {
      throw new UnauthorizedError("Invalid credentials");
    }

    // 4. retourner admin safe (sans password)
    return {
      id: admin.id,
      email: admin.email,
      role: admin.role,
    };
  },
};