
// 트랜잭션 동기화 기능을 내보내는 파일
import { 
  uploadTransactions, 
  downloadTransactions
} from './transaction';

export {
  uploadTransactions,
  downloadTransactions
};

// 서버에서 트랜잭션 삭제 함수 - 실제 구현
export const deleteTransactionFromServer = async (userId: string, transactionId: string): Promise<boolean> => {
  try {
    console.log(`[동기화] 서버 트랜잭션 삭제 시작: userId=${userId}, transactionId=${transactionId}`);
    
    // Supabase 클라이언트 동적 임포트 (순환 참조 방지)
    const { supabase } = await import('@/lib/supabase');
    
    // 트랜잭션 존재 여부 확인
    const { data: checkData, error: checkError } = await supabase
      .from('transactions')
      .select('transaction_id')
      .eq('user_id', userId)
      .eq('transaction_id', transactionId)
      .maybeSingle();
      
    if (checkError) {
      console.error(`[동기화] 트랜잭션 확인 오류: ${checkError.message}`, checkError);
      return false;
    }
    
    // 트랜잭션이 존재하지 않으면 이미 삭제된 것으로 간주
    if (!checkData) {
      console.log(`[동기화] 트랜잭션 이미 삭제됨: ${transactionId}`);
      return true;
    }
    
    // 서버에서 트랜잭션 삭제
    const { error: deleteError } = await supabase
      .from('transactions')
      .delete()
      .eq('user_id', userId)
      .eq('transaction_id', transactionId);
      
    if (deleteError) {
      console.error(`[동기화] 트랜잭션 삭제 실패: ${deleteError.message}`, deleteError);
      return false;
    }
    
    console.log(`[동기화] 서버 트랜잭션 삭제 성공: ${transactionId}`);
    return true;
  } catch (error) {
    console.error(`[동기화] 트랜잭션 삭제 중 예외 발생:`, error);
    return false;
  }
};
