package com.casic.missiles.service.meter;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.dto.IdDTO;
import com.casic.missiles.dto.meter.MeterCertificateDto;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.meter.MeterCertificateImport;
import com.casic.missiles.dto.meter.MeterStaffRequest;
import com.casic.missiles.model.meter.MeterCertificate;
import com.casic.missiles.model.meter.MeterCertificateExpireMessage;
import com.casic.missiles.model.workbench.WorkbenchRemindMessage;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface MeterCertificateService extends IService<MeterCertificate> {

    ReturnDTO<MeterCertificateDto> queryCertificateList(Page<MeterCertificateDto> page , MeterStaffRequest meterStaffRequest);

    ReturnDTO addStaffCertificate(List<MeterCertificate> list);

    ReturnDTO<MeterCertificate> queryStaffCertificateInfo(IdDTO idDto);

    ReturnDTO updateStaffCertificateInfo(MeterCertificate meterCertificate);

    void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response);

    ReturnDTO deleteCertificate(IdDTO idDto);

    ReturnDTO expirationReminder(IdDTO idDto);

    void regularExpirationReminder();

    Page<WorkbenchRemindMessage> queryMessageList(Page<WorkbenchRemindMessage> page);

    ReturnDTO readMessage(IdDTO idDto);

    ReturnDTO dataCheck(List<MeterCertificateImport> list);
}
