package com.brilliance.isc.common.doc;

import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
@JsonIgnoreProperties(ignoreUnknown = true)
public class TextResultVo {

    /**
     * 业务编号
     */
    private String ownref;

    /**
     * 数据
     */
    private String data;

    /**
     * 格式化数据
     */
    private Object formatData;

    /**
     * 内容格式：pdf,text等，前端预览时需要
     */
    private String format;

    /**
     * 文件格式后缀名
     */
    private String extension;

    /**
     * 文件名称
     */
    private String filename;

    /**
     * 原文本后缀
     */
    @JsonIgnore
    @JSONField(serialize = false)
    private String sourceExtension;

    /**
     * 原文本内容
     */
    @JsonIgnore
    @JSONField(serialize = false)
    private byte[] sourceContent;


    /**
     * 附加多项
     */
    @JsonIgnore
    @JSONField(serialize = false)
    private Object attach; 

    @JsonIgnore 
    @JSONField(serialize = false)
    private byte[] binary;

    /**
     * 如果设置了binary，就将binary bytes转为base64
     * @return
     */
    public String getData(){
        if(data == null && binary!= null) {
            data = Base64.encode(binary);
        }
        return data;
    }

    @JsonIgnore
    public byte[] getSourceBinary() { 
        if (binary != null) {
            return binary;
        }
        if (data != null) {
            return data.getBytes();
        }
        return null;
    }
}
