/**
 * AI 어시스턴트 API 프록시
 * - /api/ai/v1/* 요청을 AI 서비스(기본 3100 포트)로 전달
 * - VEXPLOR와 같은 서비스로 쓰려면: 프론트(9771) → 백엔드(8080) → 여기서 3100으로 프록시
 */
import { createProxyMiddleware } from "http-proxy-middleware";
import type { RequestHandler } from "express";

const AI_SERVICE_URL =
  process.env.AI_ASSISTANT_SERVICE_URL || "http://127.0.0.1:3100";

const aiAssistantProxy: RequestHandler = createProxyMiddleware({
  target: AI_SERVICE_URL,
  changeOrigin: true,
  pathRewrite: { "^/api/ai/v1": "/api/v1" },
  // 대상 서비스 미기동 시 502 등 에러 처리 (v3 타입에 없을 수 있음)
  onError: (_err, _req, res) => {
    if (!res.headersSent) {
      res.status(502).json({
        success: false,
        error: {
          code: "AI_SERVICE_UNAVAILABLE",
          message:
            "AI 어시스턴트 서비스를 사용할 수 없습니다. AI 서비스(기본 3100 포트)를 기동한 뒤 다시 시도하세요.",
        },
      });
    }
  },
} as Parameters<typeof createProxyMiddleware>[0]);

export default aiAssistantProxy;
