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

/**
 * 로그인 기능 - Supabase Cloud 환경에 최적화
 */
export const signIn = async (email: string, password: string) => {
  try {
    console.log('로그인 시도 중:', email);
    
    // Supabase 인증 방식 시도
    const { data, error } = await supabase.auth.signInWithPassword({
      email,
      password
    });
    
    if (!error && data.user) {
      showAuthToast('로그인 성공', '환영합니다!');
      return { error: null, user: data.user };
    } else if (error) {
      console.error('로그인 오류:', error.message);
      
      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 };
    }
    
    // 여기까지 왔다면 오류가 발생한 것
    showAuthToast('로그인 실패', '로그인 처리 중 오류가 발생했습니다.', 'destructive');
    return { error: { message: '로그인 처리 중 오류가 발생했습니다.' }, user: null };
  } catch (error: any) {
    console.error('로그인 중 예외 발생:', error);
    const errorMessage = error.message || '로그인 중 오류가 발생했습니다.';
    
    showAuthToast('로그인 오류', errorMessage, 'destructive');
    return { error: { message: errorMessage }, user: null };
  }
};
