package com.red.circle.order.app.dto.cmd;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serial;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * pay下单.
 *
 * @author pengliang on 2021/12/9
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class PayPlaceAnOrderCmd implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 应用id.
   *
   * @eo.required
   */
  @NotNull(message = "applicationId required.")
  private Long applicationId;

  /**
   * 商品id.
   *
   * @eo.required
   */
  @NotNull(message = "goodsId required.")
  private Long goodsId;

  /**
   * 支付国家ID.
   *
   * @eo.required
   */
  @NotNull(message = "payCountryId required.")
  private Long payCountryId;

  /**
   * 用户id.
   *
   * @eo.required
   */
  @NotNull(message = "userId required.")
  private Long userId;

  /**
   * 渠道code.
   *
   * @eo.required
   */
  @NotBlank(message = "channelCode required.")
  private String channelCode;

  /**
   * 版本信息.
   */
  private Boolean newVersion;

  /**
   * 请求ip信息.
   */
  private String requestIp;

}
