package com.malk.lianan.service;

import com.tencentcloudapi.common.exception.TencentCloudSDKException;

import java.util.Map;

public interface TXYInvoice {

    /**
     * 混贴票据识别 [将弃用, 直接返回识别数据, ppExt: 官方已停止更新, PDF多张异常]
     *
     * @param image 下载图片经Base64编码后不超过 7M。图片下载时间不超过 3 秒
     */
    @Deprecated
    Map doMixedInvoiceOCR(String image) throws TencentCloudSDKException;

    /**
     * 通用票据识别（高级版）[返回结构化数据] ppExt: 新版本官方返回数据已结构化, 以官方为准
     *
     * @param image 下载图片经Base64编码后不超过 8M。图片下载时间不超过 3 秒
     */
    Map doRecognizeGeneralInvoice(String image) throws TencentCloudSDKException;

    /**
     * 发票验真[新版]
     *
     * @param invoiceKind         ppExt: 全电票, 新版本识别接口, 返回名称为: 电子发票(普通发票) 不包含全电标识, 发类型为: 全电发票. 注意取值
     * @param invoiceCode         票代码（10或12 位），全电发票为空
     * @param checkCode           校验码后 6 位，增值税普通发票、增值税电子普通发票、增值税普通发票(卷式)、增值税电子普通发票(通行费)时必填;
     * @param excludingTax/amount 不含税金额，增值税专用发票、增值税电子专用发票、机动车销售统一发票、二手车销售统一发票、区块链发票时必填; 全电发票为价税合计(含税金额)
     *        sellerTaxCode  销方税号，通用机打电子发票必填，区块链发票时必填
     */
    Map doVatInvoiceVerifyNew(String invoiceKind, String invoiceCode, String invoiceNo, String invoiceDate, String amount, String checkCode, String excludingTax, String tips,String sellerTaxCode) throws TencentCloudSDKException;

    /**
     * 名片识别
     */
    Map doBusinessCardOCR(String image) throws TencentCloudSDKException;

}
