package com.xindazhou.business.service.version;

import com.xindazhou.framework.common.pojo.PageResult;
import com.xindazhou.business.controller.admin.version.vo.VersionPageReqVO;
import com.xindazhou.business.controller.admin.version.vo.VersionSaveReqVO;
import com.xindazhou.business.dal.dataobject.version.VersionDO;

import java.util.List;

/**
 * 版本管理 Service 接口
 *
 * @author xindazhou
 */
public interface VersionService {

    /**
     * 创建版本
     *
     * @param createReqVO 创建信息
     * @return 版本ID
     */
    Long createVersion(VersionSaveReqVO createReqVO);

    /**
     * 更新版本
     *
     * @param updateReqVO 更新信息
     */
    void updateVersion(VersionSaveReqVO updateReqVO);

    /**
     * 删除版本
     *
     * @param id 版本ID
     */
    void deleteVersion(Long id);

    /**
     * 批量删除版本
     *
     * @param ids 版本ID列表
     */
    void deleteVersionList(List<Long> ids);

    /**
     * 获得版本
     *
     * @param id 版本ID
     * @return 版本
     */
    VersionDO getVersion(Long id);

    /**
     * 获得版本分页列表
     *
     * @param reqVO 分页条件
     * @return 分页列表
     */
    PageResult<VersionDO> getVersionPage(VersionPageReqVO reqVO);

    /**
     * 获取指定平台的最新版本（用于APP检查更新）
     *
     * @param platform 平台类型：1-安卓，2-鸿蒙，3-iOS
     * @return 最新版本，如果没有则返回 null
     */
    VersionDO getLatestVersion(Integer platform);

    /**
     * 修改版本状态
     *
     * @param id 版本ID
     * @param status 状态：0-启用，1-禁用
     */
    void updateVersionStatus(Long id, Integer status);

}

