
package com.tmerclub.cloud.delivery.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.delivery.dto.PrinterDTO;
import com.tmerclub.cloud.delivery.model.Printer;
import com.tmerclub.cloud.delivery.vo.PrinterVO;

import java.util.List;

/**
 * 打印机
 *
 * @author TRACK
 * @date 2023-08-23 14:48:23
 */
public interface PrinterService {

    /**
     * 分页获取打印机列表
     * @param pageDTO 分页参数
     * @param printerDTO
     * @return 打印机列表分页数据
     */
    PageVO<Printer> page(PageDTO pageDTO, PrinterDTO printerDTO);

    /**
     * 根据打印机id获取打印机
     *
     * @param printerId 打印机id
     * @return 打印机
     */
    Printer getByPrinterId(Long printerId);

    /**
     * 保存打印机
     * @param printer 打印机
     */
    void save(Printer printer);

    /**
     * 更新打印机
     * @param printer 打印机
     */
    void update(Printer printer);

    /**
     * 根据打印机id删除打印机
     * @param printerId 打印机id
     */
    void deleteById(Long printerId);

    /**
     * 设为/取消默认
     * @param printerId
     */
    void setDefault(Long printerId);

    /**
     * 获取店铺打印机列表
     * @param shopId
     * @param sysType
     * @return
     */
    List<PrinterVO> listByShopId(Long shopId, Integer sysType);

    /**
     * 删除缓存
     * @param shopId
     * @param sysType
     */
    void removeCache(Long shopId, Integer sysType);
}
