import { Hono } from 'hono';
import { rateLimit } from '../ratelimit.js';
import { login } from '../auth-local.js';

// Lokaler Login (auth: 'local') — ersetzt GoTrue. Liefert ein GoTrue-förmiges
// Token, das requireAuth genauso prüft wie ein Supabase-Token. Nur gemountet,
// wenn config.auth === 'local' (siehe index.js); Brute-Force gedrosselt.
const auth = new Hono();

auth.post('/login', rateLimit({ max: 10, windowMs: 5 * 60_000 }), async (c) => {
  let body = {};
  try { body = await c.req.json(); } catch { /* leerer/kaputter Body → 400 unten */ }
  const { email, password } = body;
  if (!email || !password) return c.json({ error: 'E-Mail und Passwort nötig' }, 400);
  const res = await login(email, password);
  if (!res) return c.json({ error: 'Login fehlgeschlagen' }, 401);
  return c.json(res);
});

export default auth;
