package com.red.circle.console.app.dto.cmd.app.activity.invite;

import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serial;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 邀请活动发放金币命令.
 */
@Data
@Accessors(chain = true)
public class InviteCampaignGrantGoldCmd implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  @NotNull(message = "userId required.")
  private Long userId;

  @NotBlank(message = "sysOrigin required.")
  private String sysOrigin;

  @NotBlank(message = "eventId required.")
  private String eventId;

  @NotBlank(message = "origin required.")
  private String origin;

  @NotNull(message = "goldAmount required.")
  @Min(value = 1, message = "goldAmount must be greater than 0.")
  private Long goldAmount;

  private String remark;
}
