import { Router } from "express";
import { prisma } from "../../lib/prisma";
import { requireAuth, requireCapability } from "../../middleware/auth";

export const auditRouter = Router();

// Journal des connexions — Super Admin uniquement.
auditRouter.use(requireAuth, requireCapability("config:manage"));

auditRouter.get("/logins", async (req, res) => {
  const limit = Math.min(Number(req.query.limit) || 50, 200);
  const offset = Math.max(Number(req.query.offset) || 0, 0);

  const [events, total] = await Promise.all([
    prisma.loginEvent.findMany({
      orderBy: { createdAt: "desc" },
      take: limit,
      skip: offset,
      select: {
        id: true,
        username: true,
        success: true,
        kind: true,
        actor: true,
        ip: true,
        userAgent: true,
        createdAt: true,
      },
    }),
    prisma.loginEvent.count(),
  ]);

  res.json({ events, total, limit, offset });
});
