
import { createClient } from '@supabase/supabase-js';
import { getSupabaseUrl, getSupabaseKey } from './config';

const supabaseUrl = getSupabaseUrl();
const supabaseAnonKey = getSupabaseKey();

let supabaseClient;

try {
  console.log(`Supabase 클라이언트 생성 중: ${supabaseUrl}`);
  
  // Supabase 클라이언트 생성 - Cloud 환경에 최적화
  supabaseClient = createClient(supabaseUrl, supabaseAnonKey, {
    auth: {
      autoRefreshToken: true,
      persistSession: true,
    }
  });

  console.log('Supabase 클라이언트가 성공적으로 생성되었습니다.');
  
} catch (error) {
  console.error('Supabase 클라이언트 생성 오류:', error);
  
  // 더미 클라이언트 생성 (앱이 완전히 실패하지 않도록)
  supabaseClient = {
    auth: {
      getUser: () => Promise.resolve({ data: { user: null } }),
      getSession: () => Promise.resolve({ data: { session: null } }),
      signInWithPassword: () => Promise.reject(new Error('Supabase 설정이 필요합니다')),
      signUp: () => Promise.reject(new Error('Supabase 설정이 필요합니다')),
      signOut: () => Promise.resolve({ error: null }),
      onAuthStateChange: () => ({ data: { subscription: { unsubscribe: () => {} } } }),
    },
    from: () => ({
      select: () => ({ eq: () => ({ data: null, error: new Error('Supabase 설정이 필요합니다') }) }),
      insert: () => ({ error: new Error('Supabase 설정이 필요합니다') }),
      delete: () => ({ eq: () => ({ error: new Error('Supabase 설정이 필요합니다') }) }),
    }),
  };
}

export const supabase = supabaseClient;
export const isValidUrl = true; // Supabase Cloud 환경에서는 항상 true
