package com.yida.data.common.core.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 获取小程序URL Link请求类
 *
 * @author ZYJ
 * @date 2022/6/21
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GenerateUrlLink implements Serializable {

    private static final long serialVersionUID = 5160809466719710274L;

    /**
     * 通过 URL Link 进入的小程序页面路径，必须是已经发布的小程序存在的页面，不可携带 query 。path 为空时会跳转小程序主页
     */
    private String path;

    /**
     * 通过 URL Link 进入小程序时的query，最大1024个字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~%
     */
    private String query;

    /**
     * 要打开的小程序版本。正式版为 "release"，体验版为"trial"，开发版为"develop"，仅在微信外打开时生效。
     */
    private String envVersion;

    /**
     * 小程序 URL Link 失效类型，失效时间：0，失效间隔天数：1
     * 必填
     */
    private Integer expireType;

    /**
     * 到期失效的 URL Link 的失效时间，为 Unix 时间戳。生成的到期失效 URL Link 在该时间前有效。最长有效期为30天。expire_type 为 0 必填
     */
    private Integer expireTime;

    /**
     * 到期失效的URL Link的失效间隔天数。生成的到期失效URL Link在该间隔时间到达前有效。最长间隔天数为30天。expire_type 为 1 必填
     */
    private Integer expireInterval;

    /**
     * 	云开发静态网站自定义 H5 配置参数，可配置中转的云开发 H5 页面。不填默认用官方 H5 页面
     */
    private CloudBase cloudBase;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class CloudBase implements Serializable {

        private static final long serialVersionUID = 6571196235936393363L;

        /**
         * 云开发环境
         */
        private String env;

        /**
         * 静态网站自定义域名，不填则使用默认域名
         */
        private String domain;

        /**
         * 云开发静态网站 H5 页面路径，不可携带 query
         */
        private String path;

        /**
         * 云开发静态网站 H5 页面 query 参数，最大 1024 个字符，只支持数字，大小写英文以及部分特殊字符：`!#$&'()*+,/:;=?@-._~%``
         */
        private String query;

        /**
         * 第三方批量代云开发时必填，表示创建该 env 的 appid （小程序/第三方平台）
         */
        private String resourceAppId;
    }
}
