package com.casic.missiles.service;

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.MeterCertificateDto;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.meter.MeterStaffRequest;
import com.casic.missiles.model.MeterCertificate;
import com.casic.missiles.model.MeterCertificateExpireMessage;

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<MeterCertificateExpireMessage> queryMessageList(Page<MeterCertificateExpireMessage> page, MeterStaffRequest request);

    ReturnDTO readMessage(IdDTO idDto);
}
