package com.cf.imes.module.system.controller.admin.funds.recharge.vo;

import com.cf.imes.module.system.validation.recharge.MoneyValid;
import com.cf.imes.module.system.validation.recharge.RechargeGiftTypeValid;
import com.cf.imes.module.system.validation.recharge.RechargeType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 赠送金活动表 gift_money 新增/修改 Request VO")
@Data
public class RechargeSaveReqVO {

    @Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotNull(message = "活动名称不能为空")
    private String activityName;

    @Schema(description = "赠送类型，0：满X送X、1：每满X送X", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @NotNull(message = "赠送类型不能为空")
    @RechargeGiftTypeValid
    private Integer rechargeGiftType;

    @Schema(description = "充值类型，0：微信&支付宝、1：微信、2：支付宝", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @NotNull(message = "充值类型不能为空")
    @RechargeType
    private Integer rechargeType;

    @Schema(description = "充值金额",requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    @NotNull(message = "充值金额不能为空")
    @MoneyValid(name = "充值金额")
    private BigDecimal rechargeAmount;

    @Schema(description = "赠送金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    @NotNull(message = "赠送金额不能为空")
    @MoneyValid(name = "赠送金额")
    private BigDecimal giftAmount;

    @Schema(description = "开始时间")
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;

    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    private String remark;

}
