package org.springblade.thirdparty.ocr.pojo.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.util.List;

/**
 * ocr批量磅单卡证识别参数
 * @author bfhuange
 * @date 2024/11/4
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Data
public class OCRBigCommonCardDTO extends OCRSingleDTO {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     *  非必填
     *  可选值 -1, 0, 1, 2, 3
     *  输⼊图⽚的⽂本⽅向, 如果需要系统识别则为默认的-1(可不传), 0: 正⽅向, 1:顺时针90度, 2: 180, 3: -90
     */
    @JsonProperty("direction_id")
    private Integer directionId;
    /**
     *  非必填
     *  可选值 True, False
     *  是否是区域图， 如果True: 表⽰不需要调⽤证件定位模型获取区域
     */
    @JsonProperty("is_rect")
    private String isRect;
    /**
     *  非必填
     *  ["VehicleLicense-Main", "IDCard-Main", "IDCard-Side", "DriverLicense-Main"]
     *  需要提取信息的ID列表, 不填写表⽰都要提取, 如果填写则只返回所需要列表中的信息, 返回结构不变
     */
    @JsonProperty("need_data_type")
    private List<String> needDataTypes;

    public OCRBigCommonCardDTO(String imgPath, String name) {
        super(imgPath, name);
    }

    public OCRBigCommonCardDTO(String imgPath, String name, List<String> needDataTypes) {
        super(imgPath, name);
        this.needDataTypes = needDataTypes;
    }
}
