package cn.newfeifan.mall.module.distri.controller.admin.socialstatuschangelog.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 会员身价变化日志新增/修改 Request VO")
@Data
public class SocialStatusChangeLogSaveReqVO {

    @Schema(description = "会员身价变化日志id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27452")
    private Long id;

    @Schema(description = "会员资产变化类别id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8042")
    @NotNull(message = "会员资产变化类别id不能为空")
    private Long socialStatusChangeCategoryId;

    @Schema(description = "身价点数在本类别操作的变化值", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "身价点数在本类别操作的变化值不能为空")
    private Long variationValue;

    @Schema(description = "操作对应业务对象id，例如订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24060")
    @NotNull(message = "操作对应业务对象id，例如订单id不能为空")
    private Long objectId;

    @Schema(description = "是否已生效", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean effective;

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

    @Schema(description = "计划生效时间")
    private LocalDateTime planEffectiveTime;

    @Schema(description = "实际生效时间")
    private LocalDateTime actualEffectiveTime;

    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4593")
    @NotNull(message = "用户ID不能为空")
    private Long userId;

}