package com.trade.service.trade.exportrebate.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.trade.service.trade.exportrebate.domain.TaxRebateExportDetails;
import com.trade.service.trade.exportrebate.dto.*;
import com.trade.service.trade.exportrebate.dto.search.ExportTaxRebateDetailsForCSearchDto;
import com.trade.service.trade.exportrebate.dto.search.TaxRebateExportAbstractInfoSearchDto;
import com.trade.service.trade.exportrebate.dto.search.TaxRebateSearchDto;
import com.trade.service.trade.exportrebate.dto.search.TaxRebateSummarySearchDto;

import java.util.List;

/**
 * 出口退税-出口明细表数据库访问
 *
 * @author hlb
 * @since 2024-10-22 15:14:58
 */
public interface TaxRebateExportDetailsMapper extends BaseMapper<TaxRebateExportDetails> {

    /**
     * 根据条件分页查询退税明细汇总(自营模式下)
     * 
     * @param search
     * @return
     */
    List<ExportTaxRebateStatisticDto> getPagesBySearch(TaxRebateSearchDto search);

    /**
     * 根据条件分页查询退税明细(自营模式下)
     * 
     * @param search
     * @return
     */
    List<TaxRebateExportDetails> getDetailsByCSearch(ExportTaxRebateDetailsForCSearchDto search);

    /**
     * 出口退税明细合计数据查询（代理模式下）
     * 
     * @param search
     * @return
     */
    TaxRebateTotalDataDto getTaxRebateTotalDataBySearch(TaxRebateSummarySearchDto search);

    /**
     * 出口退税明细汇总数据查询(代理模式下）
     * 
     * @param search
     * @return
     */
    List<TaxRebateSummaryDataDto> getTaxRebateSummaryDataPagesBySearch(TaxRebateSummarySearchDto search);

    /**
     * 出口退税出口明细摘要信息分页查询
     * 
     * @param search
     * @return
     */
    List<TaxRebateExportAbstractInfo> getTaxRebateExportAbstractInfoPagesBySearch(
            TaxRebateExportAbstractInfoSearchDto search);

    /**
     * 获取可支付的出口退税明细(自营模式下)
     * 
     * @return
     */
    List<TaxRebateExportDetails> getPayableTaxRebateExportDetailsForSelfExportUser();
}
