package com.njcn.device.device.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.ProgramParam;
import com.njcn.device.pq.pojo.po.Version;
import com.njcn.device.pq.pojo.vo.VersionVO;
import org.springframework.web.multipart.MultipartFile;

import java.time.LocalDate;
import java.util.List;

/**
 * @version 1.0.0
 * @author: chenchao
 * @date: 2022/05/19 15:53
 */
public interface ProgramVersionService extends IService<Version> {

    /**
     * 根据终端类型分页获取程序版本管理信息
     * @return
     */
    Page<VersionVO> getProgramVersion(ProgramParam programParam);
    /**
     * 新增程序版本管理信息
     * @return
     */
    boolean addProgramVersion(String name, String protocol, LocalDate date, String devType, String remark, String versionType,String fileName, MultipartFile file);
    /**
     * 版本文件是否存在
     * @return
     */
    boolean getProgramVersionById(String id);
    /**
     * 修改程序版本管理信息
     * @return
     */
    boolean updateProgramVersion(String id, String name, String protocol, LocalDate date, String devType, String remark, String versionType,String fileName, MultipartFile file);
    /**
     * 修改程序版本状态
     * @return
     */
    boolean updateVersionFlag(String id, Integer flag);
    /**
     * 删除版本
     * @return
     */
    boolean delProgramVersion(String id);

    /**
     * 终端版本升级，查看除了当前版本的其他版本信息
     * @param param
     * @return
     */
    List<VersionVO> getVersion(ProgramParam.Version param);
}
