package com.jeesharp.business.modules.finance.paymentrecord.vo;

import com.jeesharp.framework.pojo.query.PaginationVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 支付记录分页查询条件。
 *
 * @author jeesharp
 * @since 2026-05-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "支付记录查询")
public class PayRecordQueryVO extends PaginationVO {

    @Schema(description = "会员关键词（编号/昵称/姓名/手机/会员主键）")
    private String memberKeyword;

    @Schema(description = "会员ID集合（内部筛选，由 Application 根据 memberKeyword 注入）")
    private List<String> memberIdIn;

    @Schema(description = "用户ID（精确匹配，管理端请使用 memberKeyword）")
    private String memberId;

    @Schema(description = "商户订单号")
    private String merchantOrderNo;

    @Schema(description = "第三方支付单号")
    private String payOrderNo;

    @Schema(description = "支付状态")
    private Integer payStatus;

    @Schema(description = "业务区分：0-支付 2-退款")
    private Integer bizKind;

    @Schema(description = "支付类型编码")
    private String payType;

    @Schema(description = "业务场景编码")
    private String bizScene;

    @Schema(description = "手机号（模糊）")
    private String mobile;

    @Schema(description = "登录账号（模糊）")
    private String loginAccount;

    @Schema(description = "支付时间起")
    private LocalDateTime payTimeStart;

    @Schema(description = "支付时间止")
    private LocalDateTime payTimeEnd;
}
