package com.red.circle.other.inner.model.cmd.material;

import com.red.circle.framework.dto.Command;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 发送道具到用户背包.
 *
 * @author pengliang on 2023/11/6
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class GivePropsBackpackCmd extends Command {

  /**
   * 接收用户id.
   */
  @NotNull(message = "acceptUserId required.")
  private Long acceptUserId;

  /**
   * 道具id.
   */
  @NotNull(message = "propsId required.")
  private Long propsId;

  /**
   * 类型.
   */
  @NotBlank(message = "type required.")
  private String type;

  /**
   * 来源.
   */
  @NotBlank(message = "origin required.")
  private String origin;

  /**
   * 来源, 描述.
   */
  @NotBlank(message = "originDesc required.")
  private String originDesc;

  /**
   * 发送天.
   */
  @NotNull(message = "days required.")
  private Integer days;

  /**
   * 0.未使用 1.使用.
   */
  @NotNull(message = "useProps required.")
  private Boolean useProps;

  /**
   * 0.可赠送 1.不可赠送(若该道具是用户赠送的， 在有效期内则不可再次赠送给其他用户).
   */
  @NotNull(message = "allowGive required.")
  private Boolean allowGive;

  /**
   * 操作用户.
   */
  private Long opUser;
}
