import type { LoaderFunctionArgs } from "@remix-run/node";
import { json } from "@remix-run/node";
import { unauthenticated } from "../shopify.server";
import { getSocialLoginConfigFromAdmin } from "../lib/shopify-metafields";

export const loader = async ({ request }: LoaderFunctionArgs) => {
  const url = new URL(request.url);
  const shop = url.searchParams.get('shop');
  
  if (!shop) {
    throw new Response('Missing shop parameter', { status: 400 });
  }

  try {
    const { admin } = await unauthenticated.admin(shop);
    const config = await getSocialLoginConfigFromAdmin(admin);
    return json({ config });
  } catch (error) {
    console.error('Failed to load config:', error);
    // デフォルト設定を返す
    const defaultConfig = {
      redirectUri: '',
      facebook: { enabled: false, appId: '', appSecret: '' },
      x: { enabled: false, appId: '', clientId: '', clientSecret: '' },
      google: { enabled: false, clientId: '' },
      line: { enabled: false, liffId: '', channelId: '', channelSecret: '' },
      instagram: { enabled: false, appId: '', appSecret: '' },
      apple: { enabled: false, clientId: '' },
      tiktok: { enabled: false, clientKey: '', clientSecret: '' },
    };
    return json({ config: defaultConfig });
  }
};