
/**
 * 플랫폼 관련 유틸리티 함수들
 */

import { Capacitor } from '@capacitor/core';

/**
 * 안드로이드 플랫폼인지 확인
 */
export const isAndroidPlatform = (): boolean => {
  return Capacitor.getPlatform() === 'android';
};

/**
 * iOS 플랫폼인지 확인
 */
export const isIOSPlatform = (): boolean => {
  return Capacitor.getPlatform() === 'ios';
};

/**
 * 웹 플랫폼인지 확인
 */
export const isWebPlatform = (): boolean => {
  return Capacitor.getPlatform() === 'web';
};

/**
 * 네이티브 플랫폼(Android 또는 iOS)인지 확인
 */
export const isNativePlatform = (): boolean => {
  return isAndroidPlatform() || isIOSPlatform();
};

/**
 * 앱 버전 정보 가져오기
 */
export const getAppVersionInfo = async () => {
  try {
    // BuildInfoPlugin이 설치되어 있다면 사용
    if (Capacitor.isPluginAvailable('BuildInfo')) {
      // Capacitor.Plugins 대신에 직접 window 객체에서 접근
      // @ts-ignore - 플러그인이 런타임에 등록되므로 타입 체크를 무시
      const buildInfo = await Capacitor.Plugins?.BuildInfo?.getBuildInfo();
      return {
        versionName: buildInfo?.versionName || '1.0.1',
        buildNumber: buildInfo?.buildNumber ? parseInt(buildInfo.buildNumber, 10) : 2,
        versionCode: buildInfo?.versionCode 
          ? parseInt(buildInfo.versionCode, 10) 
          : undefined
      };
    }
    
    // 플러그인이 없으면 기본값 반환
    return {
      versionName: '1.0.1',
      buildNumber: 2
    };
  } catch (error) {
    console.error('앱 버전 정보를 가져오는 중 오류 발생:', error);
    return {
      versionName: '1.0.1',
      buildNumber: 2
    };
  }
};
