import { NextRequest } from 'next/server';
import { proxyToPhpBackend, appendQueryParams } from '@/lib/api/php-proxy';

/**
 * 품목기준관리 전체 설정 조회 API
 *
 * 엔드포인트: GET /api/tenants/{tenantId}/item-master-config
 *
 * 역할:
 * - PHP 백엔드로 단순 프록시
 * - tenant.id 검증은 PHP에서 수행
 * - PHP가 403 반환하면 그대로 전달
 */
export async function GET(
  request: NextRequest,
  { params }: { params: Promise<{ tenantId: string }> }
) {
  const { tenantId } = await params;
  const { searchParams } = new URL(request.url);

  // PHP 엔드포인트 생성 (query params 포함)
  const phpEndpoint = appendQueryParams(
    `/api/v1/tenants/${tenantId}/item-master-config`,
    searchParams
  );

  return proxyToPhpBackend(request, phpEndpoint, {
    method: 'GET',
  });
}

/**
 * 품목기준관리 전체 설정 저장 API
 *
 * 엔드포인트: POST /api/tenants/{tenantId}/item-master-config
 */
export async function POST(
  request: NextRequest,
  { params }: { params: Promise<{ tenantId: string }> }
) {
  const { tenantId } = await params;
  const body = await request.json();

  return proxyToPhpBackend(
    request,
    `/api/v1/tenants/${tenantId}/item-master-config`,
    {
      method: 'POST',
      body: JSON.stringify(body),
    }
  );
}

/**
 * 품목기준관리 전체 설정 업데이트 API
 *
 * 엔드포인트: PUT /api/tenants/{tenantId}/item-master-config
 */
export async function PUT(
  request: NextRequest,
  { params }: { params: Promise<{ tenantId: string }> }
) {
  const { tenantId } = await params;
  const body = await request.json();

  return proxyToPhpBackend(
    request,
    `/api/v1/tenants/${tenantId}/item-master-config`,
    {
      method: 'PUT',
      body: JSON.stringify(body),
    }
  );
}