/**
 * GET /api/v3/dify/chat-apps/my - 获取当前用户可访问的对话应用列表
 *
 * 转发请求到后端 API，后端从配置文件读取对话应用列表
 * 参考文档：docs/new-dify/dify_api_doc.md - 对话应用多实例支持
 */

import { LoaderFunctionArgs, json } from '@remix-run/node';
import { API_BASE_URL } from '~/config/api-config';
import { getUserSession } from '~/api/login/auth.server';

export async function loader({ request }: LoaderFunctionArgs) {
    try {
        const { frontendJWT } = await getUserSession(request);

        if (!frontendJWT) {
            return json(
                { code: 401, message: 'JWT认证失败，请重新登录', data: { data: [], total: 0 } },
                { status: 401 }
            );
        }

        console.log('[API] Get My Chat Apps - Forwarding to backend');

        // 转发请求到后端 - 使用正确的接口路径
        // 根据文档：GET /api/v3/dify/chat-apps
        const apiUrl = `${API_BASE_URL}/v3/dify/chat-apps`;
        const response = await fetch(apiUrl, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${frontendJWT}`,
            },
        });

        const data = await response.json();
        console.log('[API] Get My Chat Apps - Backend response:', data);

        return json(data, { status: response.status });

    } catch (error: any) {
        console.error('[API] Get My Chat Apps - Error:', error.message);
        return json(
            { code: 500, message: error.message || 'Failed to get chat apps', data: { data: [], total: 0 } },
            { status: 500 }
        );
    }
}
