
/**
 * 동기화 시간 관리
 */

// 마지막 동기화 시간 가져오기
export const getLastSyncTime = (): string | null => {
  return localStorage.getItem('lastSync');
};

// 마지막 동기화 시간 설정
export const setLastSyncTime = (timestamp: string): void => {
  localStorage.setItem('lastSync', timestamp);
  
  // 이벤트 발생
  window.dispatchEvent(new CustomEvent('syncTimeUpdated', {
    detail: { time: timestamp }
  }));
};

// 마지막 동기화 시간 포맷
export const formatLastSyncTime = (timestamp: string | null = null): string => {
  if (!timestamp) {
    timestamp = getLastSyncTime();
  }
  
  if (!timestamp) {
    return '없음';
  }

  try {
    const date = new Date(timestamp);
    
    // 유효한 날짜인지 확인
    if (isNaN(date.getTime())) {
      return '없음';
    }
    
    // 오늘 날짜인 경우
    const today = new Date();
    const isToday = date.getDate() === today.getDate() &&
                   date.getMonth() === today.getMonth() &&
                   date.getFullYear() === today.getFullYear();
    
    if (isToday) {
      // 시간만 표시
      return `오늘 ${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`;
    }
    
    // 어제 날짜인 경우
    const yesterday = new Date(today);
    yesterday.setDate(yesterday.getDate() - 1);
    const isYesterday = date.getDate() === yesterday.getDate() &&
                       date.getMonth() === yesterday.getMonth() &&
                       date.getFullYear() === yesterday.getFullYear();
    
    if (isYesterday) {
      return `어제 ${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`;
    }
    
    // 그 외 날짜
    return `${date.getFullYear()}/${String(date.getMonth() + 1).padStart(2, '0')}/${String(date.getDate()).padStart(2, '0')} ${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`;
  } catch (error) {
    console.error('날짜 포맷 오류:', error);
    return '없음';
  }
};
