// src/routes/(protected)/bigdata-generate/+page.server.ts

import pool from '$lib/server/database';
import type { PageServerLoad } from './$types';

export const load: PageServerLoad = async (event) => {
    const { user } = await event.parent(); 
    // console.log('Parent로부터 받은 사용자 정보:', user); // 디버깅 완료 후 주석 처리

    let myMovies: number[] = [];
    let allMovies: number[] = [];
    let error: string | null = null;

    try {
        // "전체" 목록 쿼리 (정상)
        const allResult = await pool.query<{ IndexMovie: number }>( 
            'SELECT DISTINCT "IndexMovie" FROM public."TumerDatasetRef" ORDER BY "IndexMovie" ASC'
        );
        allMovies = allResult.rows.map((row) => row.IndexMovie);


        if (user && user.workerId) { 
            // ▼▼▼ [ "내" 목록 쿼리 수정 ] ▼▼▼

            // 2-1. 타입을 올바른 컬럼명 "Index"로 수정
            const myResult = await pool.query<{ Index: number }>( 
                // 2-2. 쿼리는 "Index" 컬럼을 SELECT (정상)
                'SELECT DISTINCT "Index" FROM public."TumerMovie" WHERE "WorkerID" = $1 ORDER BY "Index" ASC', 
                [user.workerId] 
            );
            
            // 2-3. 매핑을 "row.IndexMovie"가 아닌 "row.Index"로 수정
            myMovies = myResult.rows.map((row) => row.Index); 
            
            // ▲▲▲ [ 수정 완료 ] ▲▲▲
        } else {
            console.warn('user.workerId를 찾을 수 없거나 user가 null입니다.', user);
        }

        return {
            allMovies,
            myMovies
        };
    } catch (dbError: any) { 
        console.error('Failed to load movie lists', dbError);
        return {
            allMovies: [],
            myMovies: [],
            error: dbError.message || '데이터베이스에서 영화 목록을 가져오는 데 실패했습니다.'
        };
    }
};