package com.narutohuo.xindazhou.common.version.repository

import com.narutohuo.xindazhou.common.version.datasource.remote.VersionApi
import com.narutohuo.xindazhou.common.version.model.VersionInfo

/**
 * 版本管理 Repository
 */
class VersionRepository(
    private val versionApi: VersionApi
) {
    
    /**
     * 检查版本更新
     * 
     * @param platform 平台类型：1-安卓，2-鸿蒙，3-iOS
     * @param currentVersionCode 当前版本号
     * @return 版本信息，如果没有版本则返回 null
     */
    suspend fun checkVersion(
        platform: Int,
        currentVersionCode: Int
    ): VersionInfo? {
        return try {
            val versionInfo = versionApi.getLatestVersion(platform, currentVersionCode)
            // 如果没有版本或没有更新，返回 null
            if (!versionInfo.hasUpdate) {
                null
            } else {
                versionInfo
            }
        } catch (e: Exception) {
            // 如果请求失败（比如没有版本），返回 null
            // 这样客户端可以正常启动，不会因为版本检查失败而阻塞
            null
        }
    }
    
    /**
     * 检查版本更新
     * 
     * @param versionInfo 版本信息
     * @return 是否需要更新（true 表示需要更新）
     */
    fun hasUpdate(versionInfo: VersionInfo?): Boolean {
        return versionInfo != null && versionInfo.hasUpdate
    }
    
    /**
     * 判断是否为强制更新
     * 
     * @param versionInfo 版本信息
     * @return 是否为强制更新
     */
    fun isForceUpdate(versionInfo: VersionInfo?): Boolean {
        return versionInfo?.forceUpdate == true
    }
}

