package com.gxwebsoft.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.app.entity.AppVersion;
import com.gxwebsoft.app.param.AppVersionParam;

import java.util.List;

/**
 * 应用版本发布记录Service
 *
 * @author 科技小王子
 * @since 2026-03-28 21:29:44
 */
public interface AppVersionService extends IService<AppVersion> {

    /**
     * 分页关联查询
     */
    PageResult<AppVersion> pageRel(AppVersionParam param);

    /**
     * 关联查询全部
     */
    List<AppVersion> listRel(AppVersionParam param);

    /**
     * 根据id查询
     */
    AppVersion getByIdRel(Integer id);

    /**
     * 发布版本（将此版本设为当前版本，其他版本 isCurrent=false）
     *
     * @param id       版本ID
     * @param publishBy 发布人用户ID
     */
    boolean publish(Long id, Integer publishBy);

    /**
     * 回滚到指定版本（将此版本设为当前版本，当前版本标为已回滚）
     *
     * @param id       要回滚到的版本ID
     * @param publishBy 操作人用户ID
     */
    boolean rollback(Long id, Integer publishBy);

    /**
     * 获取指定应用的当前版本
     *
     * @param websiteId 应用ID
     */
    AppVersion getCurrentVersion(Long websiteId);

}
