import { Router, Request, Response } from 'express';
import pool from '../db';
import { extractKieTaskId, resolveKieTask } from '../services/kie-callbacks';

const router = Router();

router.post('/callback', async (req: Request, res: Response) => {
  const payload = req.body || {};
  const taskId = extractKieTaskId(payload);

  if (!taskId) {
    res.status(400).json({ error: 'Missing taskId' });
    return;
  }

  try {
    pool.query(
      `INSERT INTO rm_api_usage (category, subcategory, provider, model, response_time_ms, success, metadata)
       VALUES ($1, $2, $3, $4, $5, true, $6)`,
      [
        'kie',
        'callback',
        'kie.ai',
        'webhook',
        0,
        JSON.stringify({ taskId, payload }),
      ]
    ).catch(() => {});

    resolveKieTask(taskId, payload);
    res.json({ ok: true });
  } catch (err: any) {
    console.error('[kie] Callback handling failed:', err.message);
    res.status(500).json({ error: 'Callback handling failed' });
  }
});

export default router;
