import * as Updates from 'expo-updates';
import { Alert } from 'react-native';

export const UpdateService = {
  async checkForUpdates() {
    if (__DEV__) return;

    try {
      const update = await Updates.checkForUpdateAsync();
      if (update.isAvailable) {
        Alert.alert(
          'Доступно обновление',
          'Доступна новая версия мессенджера Knot. Хотите обновить сейчас?',
          [
            { text: 'Позже', style: 'cancel' },
            { 
              text: 'Обновить', 
              onPress: async () => {
                await this.applyUpdate();
              } 
            },
          ]
        );
      }
    } catch (error) {
       console.warn('OTA: Error checking for updates:', error);
    }
  },

  async applyUpdate() {
    try {
      await Updates.fetchUpdateAsync();
      await Updates.reloadAsync();
    } catch (error) {
       console.error('OTA: Error applying update:', error);
       Alert.alert('Ошибка обновления', 'Не удалось загрузить новую версию.');
    }
  },

  async startAutomaticCheck() {
    if (__DEV__) return;
    // В SDK 51+ рекомендуется использовать checkForUpdateAsync или хуки в компонентах
    console.log('OTA: Update check utility ready.');
  }
};
