package com.yfd.platform.system.service;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.system.domain.QuartzJob;
import com.yfd.platform.system.domain.SysDataBackup;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 系统数据备份恢复记录 服务类
 * </p>
 *
 *
 * @since 2023-08-31
 */
public interface ISysDataBackupService extends IService<SysDataBackup> {

    /**********************************
     * 用途说明: 分页查询日志信息
     * 参数说明  page分页对象、datascope（数据范围）、backuptype(backuptype)
     * 操作类型、startDate(开始日期)、endDate（结束日期）
     * 返回值说明:返回分页查询结果
     ***********************************/
    Page<SysDataBackup> getBackFileList(String filename, String datascope, String backuptype, String startDate,
                                        String endDate, Page<SysDataBackup> page);

    /**********************************
     * 用途说明: 备份数据库表
     * 参数说明 conninfo 数据库连接信息
     * 参数说明 datascope 数据范围：全部数据 基础数据  业务数据
     * 参数说明 backuptype 类型 自动备份 手工备份
     * 返回值说明: boolean 是否成功
     ***********************************/
    boolean backupDataTable(String datascope, String backuptype);

    /**********************************
     * 用途说明: 恢复数据库表
     * 参数说明 id 数据库表备份记录id
     * 返回值说明: boolean 是否成功
     ***********************************/
    boolean recoverDataTable(String id);

    /**********************************
     * 用途说明: 下载数据库文件
     * 参数说明 id 数据表备份文件记录id
     * 返回值说明: boolean 是否成功
     ***********************************/
    boolean downloadDataTable(String id, HttpServletResponse response);
}
