package com.sckw.payment.request;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.sckw.core.model.page.PageRequest;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * Author: donglang
 * Time: 2025-11-03
 * Des: 钱包明细查询参数
 * Version: 1.0
 */

@Data
public class KwpBizWalletPrepayQueryRequest extends PageRequest {

    /**
     * 钱包id
     */
    @NotNull(message = "钱包id不能为空！")
    @Schema(description = "钱包id")
    private Long walletId;

    /**
     * 最小金额
     */
    @Schema(description = "最小金额")
    @PositiveOrZero(message = "金额必须大于等于0！")
    private BigDecimal minAmount;

    /**
     * 最大金额
     */
    @Schema(description = "最大金额")
    @PositiveOrZero(message = "金额必须大于等于0！")
    private BigDecimal maxAmount;

    /**
     * 动帐类型  0-预付、1-扣款、2-冻结、3-解冻、4-消费
     */
    @Schema(description = "动帐类型  0-预付、1-扣款、2-冻结、3-解冻、4-消费")
    private Integer type;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

}
