<?php

/**
 * @author：llbjj
 * @DateTime：2023/5/9 11:56
 * @Description：
 *
 * Class OcrClient
 */

declare(strict_types=1);

namespace Application\Service\Baidu;

use AipOcr;

use function array_merge;
use function base64_encode;

class OcrClient extends AipOcr
{
    private string $tableV2Url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/table';

    private string $medicalReportDetectionUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/medical_report_detection';

    /**
     * tableV2识别
     *
     * @param string $imageContent
     * @param array $options - 可选参数对象，key: value都为string类型
     * @return array
     * @description options列表:
     */
    public function customOcrTableV2(string $imageContent, array $options = []): array
    {
        $data          = [];
        $data['image'] = base64_encode($imageContent);
        $data          = array_merge($data, $options);
        return $this->request($this->tableV2Url, $data);
    }

    /**
     * Notes: 通用医疗化验单
     *
     * @param string $imageContent - string $image - 图像数据，base64编码，要求base64编码后大小不超过4M，最短边至少15px，最长边最大4096px,支持jpg/png/bmp格式
     * @param array $options - 可选参数对象，key: value都为string类型
     * @return array
     */
    public function medicalReport(string $imageContent, array $options = []): array
    {
        $data          = [];
        $data['image'] = base64_encode($imageContent);
        $data          = array_merge($data, $options);
        return $this->request($this->medicalReportDetectionUrl, $data);
    }
}
