import type { NextConfig } from "next";
import createNextIntlPlugin from 'next-intl/plugin';

const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts');

const nextConfig: NextConfig = {
  reactStrictMode: false, // 🧪 TEST: Strict Mode 비활성화로 중복 요청 테스트
  turbopack: {}, // ✅ CRITICAL: Next.js 15 + next-intl compatibility
  serverExternalPackages: ['puppeteer'], // puppeteer는 Node.js 전용 - Webpack 번들 제외
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'placehold.co',
      },
    ],
  },
  experimental: {
    serverActions: {
      bodySizeLimit: '10mb', // 이미지 업로드를 위한 제한 증가
    },
  },
  typescript: {
    // ⚠️ WARNING: This allows production builds to complete even with TypeScript errors
    // Only use during development. Remove for production deployments.
    ignoreBuildErrors: true,
  },
  eslint: {
    // ⚠️ WARNING: Temporarily ignore ESLint during builds for migration
    // TODO: Fix ESLint errors after migration is complete
    ignoreDuringBuilds: true,
  },
  // Capacitor 패키지는 모바일 앱 전용 - 웹 빌드에서 제외
  webpack: (config, { isServer }) => {
    if (!isServer) {
      config.resolve.fallback = {
        ...config.resolve.fallback,
        '@capacitor/core': false,
        '@capacitor/push-notifications': false,
        '@capacitor/app': false,
      };
    }
    return config;
  },
};

export default withNextIntl(nextConfig);
