package com.cyksj.model.request;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/*
 *项目名: yicang-server
 *文件名: JiShanSchemeReq
 *创建者: JavaZou
 *创建时间:2022/8/22 13:56
 */
@Getter
@Setter
public class TargetAppletSchemeReq {
	/**
	 * 跳转到的目标小程序信息
	 */
	@JsonProperty("jump_wxa")
	private JumpWxa jumpWxa;
	/**
	 * 到期失效的 scheme 码失效类型，失效时间：0，失效间隔天数：1
	 */
	@JsonProperty("expire_type")
	private Long expireType;
	/**
	 * 到期失效的 scheme 码的失效时间，为 Unix 时间戳。
	 * 生成的到期失效 scheme 码在该时间前有效。
	 * 最长有效期为30天。expire_type 为 0 时必填
	 */
	@JsonProperty("expire_time")
	private Long expireTime;
	/**
	 * 到期失效的 scheme 码的失效间隔天数。
	 * 生成的到期失效 scheme 码在该间隔时间到达前有效。最长间隔天数为30天。
	 * expire_type 为 1 时必填
	 */
	@JsonProperty("expire_interval")
	private Long expireInterval;

	/**
	 * 默认值false。
	 * 生成的 scheme 码类型，到期失效：true，永久有效：false。注意，
	 * 永久有效 scheme 和有效时间超过180天的到期失效 scheme 的总数上限为10万个，
	 */
	@JsonProperty("is_expire")
	private Boolean isExpired;

	@Getter
	@Setter
	@AllArgsConstructor
	@NoArgsConstructor
	public static class JumpWxa {
		/**
		 * 通过 scheme 码进入的小程序页面路径，必须是已经发布的小程序存在的页面，不可携带 query。path 为空时会跳转小程序主页。
		 */
		private String path;
		/**
		 * 通过 scheme 码进入小程序时的 query，最大1024个字符，只支持数字，大小写英文以及部分特殊字符：`!#$&'()*+,/:;=?@-._~%``
		 */
		private String query;
		/**
		 * 要打开的小程序版本。
		 * 正式版为"release"，体验版为"trial"，开发版为"develop"，仅在微信外打开时生效。
		 */
		@JsonProperty("env_version")
		private String envVersion;

		public JumpWxa(String path, String query) {
			this.path = path;
			this.query = query;
		}
	}
}
