import { json, type RequestHandler } from '@sveltejs/kit';
import * as fs from 'fs/promises';
import * as path from 'path';

export const POST: RequestHandler = async ({ request }) => {
	try {
		const data = await request.formData();
		const videoFile = data.get('video') as File | null;

		if (!videoFile) {
			return json({ success: false, error: '업로드된 파일이 없습니다.' }, { status: 400 });
		}

		// 1. 오늘 날짜를 YYYYMMDD 형식으로 생성
		const today = new Date();
		const year = today.getFullYear();
		const month = String(today.getMonth() + 1).padStart(2, '0');
		const day = String(today.getDate()).padStart(2, '0');
		const dateFolder = `${year}${month}${day}`;

		// 2. 최종 저장 경로 설정
		const uploadDir = path.join('/workspace/image/movie', dateFolder);
		const filePath = path.join(uploadDir, videoFile.name);

		// 3. 날짜 폴더가 없으면 생성
		await fs.mkdir(uploadDir, { recursive: true });

		// 4. 파일 저장
		const buffer = Buffer.from(await videoFile.arrayBuffer());
		await fs.writeFile(filePath, buffer);

		console.log(`파일 저장 완료: ${filePath}`);

		return json({ success: true, filePath });
	} catch (error) {
		console.error('파일 업로드 처리 중 오류:', error);
		return json({ success: false, error: '서버에서 파일 처리 중 오류가 발생했습니다.' }, { status: 500 });
	}
};