package cn.iocoder.yudao.module.system.controller.admin.tenantpoints.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 租户积分记录新增/修改 Request VO")
@Data
public class TenantPointsSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "16587")
    private Long id;

    @Schema(description = "本次变动点数，正加负减", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "本次变动点数，正加负减不能为空")
    private Integer points;

    @Schema(description = "变动后余额快照（冗余）")
    private Integer balance;

    @Schema(description = "变动类型，如 RECHARGE, CONSUME, TRANSFER_OUT, TRANSFER_IN", example = "1")
    private String type;

    @Schema(description = "变动描述", example = "随便")
    private String description;

    @Schema(description = "订单 Id/业务单号", example = "84")
    private String orderId;

    @Schema(description = "业务流水号（转账、订单等唯一标识）")
    private String bizNo;

    @Schema(description = "操作人 Id", example = "8171")
    private Long operatorId;

    @Schema(description = "目标租户 Id（转账使用）", example = "18731")
    private Long targetTenantId;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "创建时间不能为空")
    private LocalDateTime createdAt;

}