package com.red.circle.wallet.inner.model.cmd;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 提现命令（Inner）.
 */
@Data
public class SalaryWithdrawInnerCmd implements Serializable {

  private static final long serialVersionUID = 1L;

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

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

  /**
   * 提现金额.
   */
  @NotNull(message = "amount required.")
  @DecimalMin(value = "0.01", message = "amount must > 0")
  private BigDecimal amount;

  /**
   * 业务单号.
   */
  @NotBlank(message = "trackId required.")
  private String trackId;

  /**
   * 手续费比例（千分比）.
   */
  private Long serviceCharge;

  private String salaryType;

  /**
   * 备注.
   */
  private String remark;

  /**
   * 操作用户ID.
   */
  private Long opUserId;
}
