
/**
 * 앱 빌드 정보를 가져오기 위한 Capacitor 플러그인
 */
interface BuildInfoPlugin {
  /**
   * 앱 빌드 정보를 가져옵니다.
   * @returns 앱 버전, 빌드 번호 등의 정보
   */
  getBuildInfo(): Promise<{
    versionName: string;
    versionCode: number;
    buildNumber: number;
    platform?: string;
    [key: string]: any;  // 추가 속성 허용
  }>;
}

// 기본 플러그인 구현
const BuildInfo: BuildInfoPlugin = {
  getBuildInfo: async () => {
    console.log('BuildInfo.getBuildInfo() 호출됨 (기본 구현)');
    
    try {
      // 네이티브 환경에서 앱 버전 정보를 가져오는 로직
      // 실제 네이티브 환경에서는 이 구현이 네이티브 코드로 대체됨
      
      // android/version.properties 또는 ios의 Info.plist에서 
      // 설정된 값을 반환하는 네이티브 구현이 런타임에 이 함수를 대체함
      
      // 네이티브 구현이 없을 경우를 위한 기본값 (최신 버전)
      return {
        versionName: '1.1.1.2',
        versionCode: 6,
        buildNumber: 6,
        platform: 'native',
        isDefault: true,
        timestamp: new Date().toISOString()
      };
    } catch (error) {
      console.error('BuildInfo.getBuildInfo() 오류:', error);
      // 오류 발생 시에도 앱 실행은 계속되도록 기본값 반환
      return {
        versionName: '1.1.1.2',
        versionCode: 6,
        buildNumber: 6,
        error: true,
        errorMessage: error instanceof Error ? error.message : String(error)
      };
    }
  }
};

// 필요시 네이티브 환경에서 다르게 동작하도록 설정
// 실제 네이티브 플러그인은 runtime에 교체됨
export default BuildInfo;
