package com.ruoyi.platform.service;

import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
import com.ruoyi.platform.domain.Image;
import com.ruoyi.platform.vo.ImageVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * (Image)表服务接口
 *
 * @author Xidaray
 * @since 2024-03-05 14:46:58
 */
public interface ImageService {



    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Image queryById(Integer id);


    Page<Image> queryByName(String name);

    /**
     * 通过名字精确查询单条数据
     *
     * @param name 名字
     * @return 实例对象
     */

    Image getByName(String name);



    /**
     * 分页查询
     *
     * @param image 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<Image> queryByPage(Image image, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param image 实例对象
     * @return 实例对象
     */
    Image insert(Image image);

    /**
     * 修改数据
     *
     * @param image 实例对象
     * @return 实例对象
     */
    Image update(Image image);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    String removeById(Integer id) throws Exception;

    GenericsAjaxResult<String> insertImageAndVersion(ImageVo imageVo) throws Exception;

    /**
     * 本地上传构建镜像
     *
     * @param imageName
     * @param imageTag
     * @param path
     * @return
     */
    Map<String, String> createImageFromLocal(String imageName, String imageTag,String fileName) throws Exception;

    Map<String, String> createImageFromNet(String imageName, String imageTag, String NetPath) throws Exception;

    Map<String, String> uploadImageFiles(MultipartFile file) throws Exception;

    void saveImage(ImageVo imageVo);
}
