package cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;

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

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 太空舱订单分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OrderSpaceCapsulePageReqVO extends PageParam {

    @Schema(description = "订单金额")
    private BigDecimal money;

    @Schema(description = "太空船id", example = "22979")
    private Long spaceCapsuleId;

    @Schema(description = "门店id", example = "5246")
    private Long carteenId;

    @Schema(description = "0未使用1使用中2已完成3已退款", example = "1")
    private Integer status;

    @Schema(description = "套餐金额", example = "32723")
    private BigDecimal comboPrice;

    @Schema(description = "套餐时间/分钟")
    private Integer comboMinutes;

    @Schema(description = "套餐名称", example = "王五")
    private String comboPackageName;

    @Schema(description = "套餐开始使用时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] orderStartTime;

    @Schema(description = "套餐结束使用时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] orderEndTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "产生订单的用户id", example = "30766")
    private Long userId;

    @Schema(description = "消费前的余额")
    private BigDecimal startMoney;

    @Schema(description = "消费后的余额")
    private BigDecimal endMoney;

    @Schema(description = "支付方式")
    private String payMethods;
    /**
     * 套餐数量
     */
    @Schema(description = "套餐数量")
    private Integer comboNum;
    /**
     * 退款金额
     */
    @Schema(description = "退款金额")
    private BigDecimal refundMoney;
    @Schema(description = "门店名称")
    private String carteenName;
    @Schema(description = "cmd 执行命令")
    private String cmd;
    @Schema(description = "二维码,base64")
    private String qrCode;
    @Schema(description = "支付编号")
    private Integer payNum;

    @Schema(description = "机器编号")
    private String machineNum;
    @Schema(description = "用户手机号")
    private String phone;
    @Schema(description = "太空舱名称")
    private String spaceName;
    @Schema(description = "是否开票")
    private Boolean billingExist;
    private String billingNum;
}