package com.hzya.frame.seeyon.entity;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.annotation.JSONField;

import java.util.List;
import java.util.Map;

/**
 * @Description 查询协同附件列表返回对象 /rest/coll/attachments/{summaryID}/{attType}
 * @Author xiangerlin
 * @Date 2024/8/16 09:11
 **/
public class CollAttachmentResDTO {
    private String id; //ctp_attachment 表的id
    private String reference;// 流程表的id， col_summary
    private String subReference;//流程表单附件字段存的id
    private String category;//应用分类
    private String type;
    private String filename;//附件名称
    private String mimeType;//附件类型
    private String createdate;
    private String size;//附件大小
    private String description;
    private String fileUrl;//附件id，ctp_file 表的逐渐
    private String extension;
    private String icon;
    private String iconFont;
    private String genesisId;
    private String sort;
    private String officeTransformEnable;
    private String obsObjectKey;
    private String secretLevel;
    private String secretLevelName;
    private String canBrowse;
    private String v;
    private Boolean wpsOnlineEnable;
    private Boolean allowTrans;
    private JSONObject transValue;
    private String createdateStr;
    @JSONField(name = "new")
    private Boolean newFile;
    private Map<String, String> extraMap; // 使用Map来存储额外的键值对

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getReference() {
        return reference;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public String getSubReference() {
        return subReference;
    }

    public void setSubReference(String subReference) {
        this.subReference = subReference;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    public String getCreatedate() {
        return createdate;
    }

    public void setCreatedate(String createdate) {
        this.createdate = createdate;
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }

    public String getExtension() {
        return extension;
    }

    public void setExtension(String extension) {
        this.extension = extension;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getIconFont() {
        return iconFont;
    }

    public void setIconFont(String iconFont) {
        this.iconFont = iconFont;
    }

    public String getGenesisId() {
        return genesisId;
    }

    public void setGenesisId(String genesisId) {
        this.genesisId = genesisId;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    public String getOfficeTransformEnable() {
        return officeTransformEnable;
    }

    public void setOfficeTransformEnable(String officeTransformEnable) {
        this.officeTransformEnable = officeTransformEnable;
    }

    public String getObsObjectKey() {
        return obsObjectKey;
    }

    public void setObsObjectKey(String obsObjectKey) {
        this.obsObjectKey = obsObjectKey;
    }

    public String getSecretLevel() {
        return secretLevel;
    }

    public void setSecretLevel(String secretLevel) {
        this.secretLevel = secretLevel;
    }

    public String getSecretLevelName() {
        return secretLevelName;
    }

    public void setSecretLevelName(String secretLevelName) {
        this.secretLevelName = secretLevelName;
    }

    public String getCanBrowse() {
        return canBrowse;
    }

    public void setCanBrowse(String canBrowse) {
        this.canBrowse = canBrowse;
    }

    public String getV() {
        return v;
    }

    public void setV(String v) {
        this.v = v;
    }

    public Boolean getWpsOnlineEnable() {
        return wpsOnlineEnable;
    }

    public void setWpsOnlineEnable(Boolean wpsOnlineEnable) {
        this.wpsOnlineEnable = wpsOnlineEnable;
    }

    public Boolean getAllowTrans() {
        return allowTrans;
    }

    public void setAllowTrans(Boolean allowTrans) {
        this.allowTrans = allowTrans;
    }

    public JSONObject getTransValue() {
        return transValue;
    }

    public void setTransValue(JSONObject transValue) {
        this.transValue = transValue;
    }

    public String getCreatedateStr() {
        return createdateStr;
    }

    public void setCreatedateStr(String createdateStr) {
        this.createdateStr = createdateStr;
    }

    public Boolean getNewFile() {
        return newFile;
    }

    public void setNewFile(Boolean newFile) {
        this.newFile = newFile;
    }

    public Map<String, String> getExtraMap() {
        return extraMap;
    }

    public void setExtraMap(Map<String, String> extraMap) {
        this.extraMap = extraMap;
    }

    public static void main(String[] args) {
        String str = "[{\n" +
                "\t\"id\": 5180424495316486643,\n" +
                "\t\"reference\": -1741558410793893622,\n" +
                "\t\"subReference\": 584122959825946183,\n" +
                "\t\"category\": 66,\n" +
                "\t\"type\": 0,\n" +
                "\t\"filename\": \"Order.pdf\",\n" +
                "\t\"mimeType\": \"application/pdf\",\n" +
                "\t\"createdate\": 1723454209000,\n" +
                "\t\"size\": 131234,\n" +
                "\t\"description\": null,\n" +
                "\t\"fileUrl\": -5577707714790406265,\n" +
                "\t\"extension\": \"pdf\",\n" +
                "\t\"icon\": \"pdf.gif\",\n" +
                "\t\"iconFont\": \"pdf\",\n" +
                "\t\"genesisId\": null,\n" +
                "\t\"sort\": 0,\n" +
                "\t\"officeTransformEnable\": \"disable\",\n" +
                "\t\"obsObjectKey\": \"\",\n" +
                "\t\"secretLevel\": null,\n" +
                "\t\"secretLevelName\": null,\n" +
                "\t\"canBrowse\": 1,\n" +
                "\t\"v\": \"fcdf8ae9d97bf2969fa6005394442885\",\n" +
                "\t\"wpsOnlineEnable\": false,\n" +
                "\t\"allowTrans\": false,\n" +
                "\t\"transValue\": {\n" +
                "\t\t\"isWpsOnlineEnable\": false,\n" +
                "\t\t\"isAllowTrans\": false\n" +
                "\t},\n" +
                "\t\"createdateStr\": \"1723454209000\",\n" +
                "\t\"new\": false,\n" +
                "\t\"extraMap\": {}\n" +
                "}, {\n" +
                "\t\"id\": -6639984402087339,\n" +
                "\t\"reference\": -1741558410793893622,\n" +
                "\t\"subReference\": 649078190027982545,\n" +
                "\t\"category\": 66,\n" +
                "\t\"type\": 0,\n" +
                "\t\"filename\": \"Invoice.pdf\",\n" +
                "\t\"mimeType\": \"application/pdf\",\n" +
                "\t\"createdate\": 1723454201000,\n" +
                "\t\"size\": 158553,\n" +
                "\t\"description\": null,\n" +
                "\t\"fileUrl\": -4345076582332676605,\n" +
                "\t\"extension\": \"pdf\",\n" +
                "\t\"icon\": \"pdf.gif\",\n" +
                "\t\"iconFont\": \"pdf\",\n" +
                "\t\"genesisId\": null,\n" +
                "\t\"sort\": 0,\n" +
                "\t\"officeTransformEnable\": \"disable\",\n" +
                "\t\"obsObjectKey\": \"\",\n" +
                "\t\"secretLevel\": null,\n" +
                "\t\"secretLevelName\": null,\n" +
                "\t\"canBrowse\": 1,\n" +
                "\t\"v\": \"85d721af033c7dddf385be2c7ea8d423\",\n" +
                "\t\"wpsOnlineEnable\": false,\n" +
                "\t\"allowTrans\": false,\n" +
                "\t\"transValue\": {\n" +
                "\t\t\"isWpsOnlineEnable\": false,\n" +
                "\t\t\"isAllowTrans\": false\n" +
                "\t},\n" +
                "\t\"createdateStr\": \"1723454201000\",\n" +
                "\t\"new\": false,\n" +
                "\t\"extraMap\": {}\n" +
                "}]";
        List<CollAttachmentResDTO> list = JSON.parseArray(str,CollAttachmentResDTO.class);
        System.out.println(list);
    }
}
