package com.tax.file.service.api;

import com.tax.file.model.InvoiceFileReq;
import com.tax.file.model.InvoiceFileTaxManageReq;
import com.tax.file.model.TkTaxUser;
import com.tax.file.model.fileManage.ApplyFileReq;
import com.tax.file.model.fileManage.ApplyMonthFileReq;
import com.tax.file.model.fileManage.QueryFileReqModel;
import com.yxcheng.token.common.model.JsonResult;

import java.util.Map;

public interface InvoiceFileService {


	/**
	 * 发票文件下载
	 *
	 * @param invoiceFileReq
	 * @return
	 */
	JsonResult<Map> download(String timeFlag, InvoiceFileReq invoiceFileReq);

	/**
	 * 发票文件下载反馈
	 *
	 * @param invoiceFileReq
	 * @return
	 */
	JsonResult<Map> downloadRes(String timeFlag, InvoiceFileReq invoiceFileReq);
	/**
		* 发票文件下载
		*
		* @param invoiceFileReq
		* @return
	*/
    JsonResult<Map> downloadList(String timeFlag, InvoiceFileReq invoiceFileReq);
    
    /**
		* 发票文件下载反馈
		*
		* @param invoiceFileReq
		* @return
    */
    JsonResult<Map> downloadListRes(String timeFlag, InvoiceFileReq invoiceFileReq);
    
    /**
		* 获取税号信息
		*
		* @param invoiceFileReq
		* @return
    */
    JsonResult<Map> taxInfo(InvoiceFileReq invoiceFileReq);
    
    /**
		* 税号初始化
		*
		* @param invoiceFileReq
		* @return
    */
    JsonResult<String> taxInit(InvoiceFileReq invoiceFileReq);
    
    /**
		* 获取发票下载的税号信息
		*
		* @param invoiceFileReq
		* @return
    */
    JsonResult<String> getTaxInfo(InvoiceFileReq invoiceFileReq);
    /**
		* 税号管理
		*
		* @param invoiceFileReq
		* @return
    */
    JsonResult<String> taxManage(InvoiceFileTaxManageReq invoiceFileReq);

	JsonResult<String> flushExpCacheByTaxno(String uuidFlag, InvoiceFileReq invoiceFileReq);

	JsonResult<Map> handApplyFile(String uuidFlag, TkTaxUser taxUser, ApplyFileReq applyFileReq);

	JsonResult<Map> queryErrorFileList(String uuidFlag, TkTaxUser taxUser, QueryFileReqModel queryFileReqModel);

	JsonResult<Map> handApplyMonthFile(String uuidFlag, TkTaxUser taxUser, ApplyMonthFileReq applyMonthFileReq);
}
