package com.red.circle.other.inner.model.dto.sys;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.framework.core.dto.CommonCommand;
import jakarta.validation.constraints.NotNull;
import java.io.Serial;
import java.sql.Timestamp;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author zhengmigndong
 * @since 2019-05-05
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class VersionManageDTO extends CommonCommand {

  @Serial
  private static final long serialVersionUID = 1L;

  @NotNull(groups = {Update.class}, message = "记录编号 不可为空")
  @JsonSerialize(using = ToStringSerializer.class)
  private Long id;

  /**
   * 来源系统.
   */
  private String sysOrigin;

  /**
   * 客户端类型 android/ios.
   */
  private String platform;

  /**
   * 渠道.
   */
  private String channel;

  /**
   * app最新当前版本号.
   */
  private String version;

  /**
   * 是否强制更新。0否，1强制.
   */
  private Boolean forceUpdate;

  /**
   * 版本更新描述.
   */
  private String updateDescribe;

  /**
   * apk大小.
   */
  private String apkSize;

  /**
   * 是否在审核 0.否 1.是.
   */
  private Boolean review;

  /**
   * app类型(语聊、朝拜).
   */
  private String appType;

  /**
   * 0.否 1.是.
   */
  private Boolean patch;

  /**
   * 是否有效,0.未删除,1.已删除.
   */
  private Boolean del;

  /**
   * 下载URL.
   */
  private String downloadUrl;

  /**
   * 编译版本.
   */
  private Integer buildVersion;

  /**
   * 创建时间.
   */
  private Timestamp createTime;

  /**
   * 修改时间.
   */
  private Timestamp updateTime;

  private Long createUser;

  public interface Update {

  }
}
