package com.crm.manager.service;

import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
import com.crm.rely.backend.core.entity.base.SingleLongEntity;
import com.crm.rely.backend.core.exception.ServiceException;
import com.crm.rely.backend.model.dto.market.MarketEmailStatusNumberDto;
import com.crm.rely.backend.model.dto.market.email.record.MarketEmailRecordListDto;
import com.crm.rely.backend.model.entity.market.MarketEmailAddEntity;
import com.crm.rely.backend.model.entity.market.record.MarketEmailRecordSearchPageEntity;
import com.crm.rely.backend.model.entity.market.record.MarketEmailRecordSendEntity;
import com.crm.rely.backend.model.entity.market.record.MarketEmailRecordStatusNumberEntity;
import com.crm.rely.backend.model.entity.market.record.MarketEmailRecordSupplementSendEntity;
import org.springframework.web.multipart.MultipartFile;

public interface MarketEmailRecordService {


    Integer add(MarketEmailAddEntity entity) throws ServiceException;

    void send(MarketEmailRecordSendEntity entity) throws ServiceException;

    BaseResultDto supplementSend(SingleLongEntity singleLongEntity) throws Exception;

    void supplementSend(MarketEmailRecordSupplementSendEntity entity) throws Exception;

    ResultWithPagerDto<MarketEmailRecordListDto> searchPageList(MarketEmailRecordSearchPageEntity entity) throws Exception;

    MarketEmailRecordListDto searchSingle(SingleLongEntity entity) throws Exception;

    MarketEmailStatusNumberDto statusNumber(MarketEmailRecordStatusNumberEntity entity) throws ServiceException;

    void validated(MultipartFile file) throws ServiceException;

    String uploadFile(MultipartFile file) throws Exception;
}
