export default defineEventHandler(async (event) => {
  try {
    const formData = await readFormData(event);
    const file = formData.get('fasta');
    
    if (!file) {
      throw createError({
        statusCode: 400,
        statusMessage: 'FASTA 파일이 없습니다.'
      });
    }
    
    // Spring Boot 서버 URL (환경변수로 설정 가능)
    const springBootUrl = process.env.SPRING_BOOT_URL || 'http://localhost:8080';
    const uploadUrl = `${springBootUrl}/api/fasta/upload`;
    
    // Spring Boot 서버로 파일 전송
    const springFormData = new FormData();
    springFormData.append('file', file);
    
    console.log(`Spring Boot 서버로 파일 업로드 중: ${uploadUrl}`);
    
    const response = await fetch(uploadUrl, {
      method: 'POST',
      body: springFormData,
      headers: {
        // Content-Type은 FormData가 자동으로 설정
      }
    });
    
    if (!response.ok) {
      const errorText = await response.text();
      throw createError({
        statusCode: response.status,
        statusMessage: `Spring Boot 서버 오류: ${errorText}`
      });
    }
    
    const result = await response.json();
    console.log('Spring Boot 서버 응답:', result);
    
    return {
      success: true,
      remoteUrl: result.fileUrl,
      fileName: result.fileName,
      fileSize: result.fileSize
    };
    
  } catch (error) {
    console.error('FASTA 업로드 오류:', error);
    throw createError({
      statusCode: 500,
      statusMessage: `파일 업로드 실패: ${error.message}`
    });
  }
}); 