
import { supabase } from '@/lib/supabase';
import { showAuthToast } from '@/utils/auth';

/**
 * 로그인 기능 - Supabase Cloud 환경에 최적화
 */
export const signInWithDirectApi = async (email: string, password: string) => {
  console.log('Supabase Cloud 로그인 시도');
  
  try {
    // Supabase Cloud를 통한 로그인 요청
    const { data, error } = await supabase.auth.signInWithPassword({
      email,
      password
    });
    
    // 오류 응답 처리
    if (error) {
      console.error('로그인 오류:', error);
      
      // 오류 메시지 포맷팅
      let errorMessage = error.message;
      
      if (error.message.includes('Invalid login credentials')) {
        errorMessage = '이메일 또는 비밀번호가 올바르지 않습니다.';
      } else if (error.message.includes('Email not confirmed')) {
        errorMessage = '이메일 인증이 완료되지 않았습니다. 이메일을 확인해주세요.';
      }
      
      showAuthToast('로그인 실패', errorMessage, 'destructive');
      return { error: { message: errorMessage }, user: null };
    }
    
    // 로그인 성공 처리
    if (data && data.user) {
      console.log('로그인 성공:', data.user);
      showAuthToast('로그인 성공', '환영합니다!');
      return { error: null, user: data.user };
    } else {
      // 사용자 정보가 없는 경우 (드문 경우)
      console.warn('로그인 성공했지만 사용자 정보가 없습니다');
      showAuthToast('로그인 부분 성공', '로그인은 성공했지만 사용자 정보를 가져오지 못했습니다.', 'default');
      return { error: { message: '사용자 정보 조회 실패' }, user: null };
    }
  } catch (error: any) {
    console.error('로그인 요청 중 예외:', error);
    const errorMessage = error.message || '로그인 중 오류가 발생했습니다.';
    
    showAuthToast('로그인 요청 실패', errorMessage, 'destructive');
    return { error: { message: errorMessage }, user: null };
  }
};
