package com.yolo.keyboard.controller.admin.themepurchase.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yolo.keyboard.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.yolo.keyboard.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 皮肤购买记录表（积分支付）分页 Request VO")
@Data
public class KeyboardThemePurchasePageReqVO extends PageParam {

    @Schema(description = "业务订单号")
    private String orderNo;

    @Schema(description = "购买用户ID", example = "24047")
    private Long userId;

    @Schema(description = "主题皮肤ID", example = "28953")
    private Long themeId;

    @Schema(description = "皮肤原始所需积分")
    private BigDecimal costPoints;

    @Schema(description = "实际扣除积分")
    private BigDecimal paidPoints;

    @Schema(description = "支付状态：0待支付 1已支付 2已关闭 3已退款", example = "1")
    private Short payStatus;

    @Schema(description = "关联的积分扣费流水ID", example = "24853")
    private Long walletTxId;

    @Schema(description = "已退款的积分数量")
    private Integer refundPoints;

    @Schema(description = "积分退款完成时间")
    private LocalDateTime refundedAt;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "支付完成时间")
    private LocalDateTime paidAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;

    @Schema(description = "备注或扩展信息", example = "你说的对")
    private String remark;

}