package org.springblade.openapi.wps.pojo.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 *  wps文件结果
 * @author bfhuange
 * @date 2024/10/30
 */
@Data
public class Api4WpsFileVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     *  文件id,字符串长度不超过64位，必填
     */
    private String id;
    /**
     *  文件名必须带后缀，必填
     */
    private String name;
    /**
     *  文档版本号，从1开始累加，位数小于11，必填
     */
    private Integer version = 1;
    /**
     *  文档大小，单位为字节；此处需传文件真实大小，否则会出现异常，必填
     */
    private Integer size;
    /**
     *  readonly默认为false
     * true开启表格筛选，支持对EXCEL表格文档筛选，但不支持对EXCEL表格文档开启多人同步筛选，该预览特性见常见问题
     * false关闭表格筛选（20220707新增），非必填
     */
    private Boolean readonly = true;
    /**
     *  创建者id，字符串长度不超过32位。与user里的id一致，必填
     */
    private String creator;
    /**
     *  创建时间，时间戳，单位为秒，必填
     */
    @JsonProperty("create_time")
    private Integer createTime;
    /**
     *  修改者id，字符串长度不超过32位，必填
     */
    private String modifier;
    /**
     *  最近修改时间，时间戳，单位为秒，必填
     */
    @JsonProperty("modify_time")
    private Integer modifyTime;
    /**
     *  文档下载地址，必填
     */
    @JsonProperty("download_url")
    private String downloadUrl;
    /**
     *  普通预览模式下可限制预览页数（不超过5000）
     * previewPages 默认值为 0，不限制预览页数；
     * previewPages >= 1 时，限制生效，限制的页数为 previewpages 字段的值，必填
     */
    @JsonProperty("preview_pages")
    private Integer previewPages = 0;
    /**
     *  用户权限，非必填
     */
    @JsonProperty("user_acl")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Api4WpsUserAclVO userAcl;
    /**
     *  水印参数，非必填
     */
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Api4WpsWatermarkVO watermark;
}
