package com.usky.sas.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.sas.service.vo.*;

import javax.servlet.http.HttpServletResponse;

/**
 * 系统信息 / 版本 / 备份 服务接口
 */
public interface SasSystemService {

    /**
     * 1.1 查询系统信息
     * 获取系统基本信息，包括厂商信息、客户端ID、系统版本号、授权模块、有效期等
     *
     * @return 系统信息响应
     */
    SystemInfoResponse getSystemInfo();

    /**
     * 2.1 查询系统版本信息
     * 获取当前系统版本信息，包括最后升级版本、升级时间、升级持续时间等
     *
     * @return 版本信息响应
     */
    VersionInfoResponse getVersionInfo();

    /**
     * 2.2 查询版本历史列表
     * 获取系统版本升级历史记录，倒序
     *
     * @param request 分页请求参数
     * @return 版本历史分页列表
     */
    CommonPage<VersionHistoryItem> getVersionHistory(VersionHistoryPageRequest request);

    /**
     * 3.1 创建备份
     * 创建系统数据备份，支持三种备份类型
     *
     * @param request 备份请求参数
     * @param response HTTP响应对象，用于文件下载
     */
    void createBackup(BackupRequest request, HttpServletResponse response);

    /**
     * 3.2 恢复系统数据
     * 使用备份文件恢复系统数据
     *
     * @param request 恢复请求参数
     * @return 恢复结果响应
     */
    BackupRestoreResponse restoreSystemData(BackupRestoreRequest request);
}
