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

import com.jeesharp.business.modules.member.vo.MemberOrderDisplay;
import com.jeesharp.framework.pojo.vo.BaseListVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 支付记录列表行 VO。
 *
 * @author jeesharp
 * @since 2026-05-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "支付记录列表行")
public class PayRecordListVO extends BaseListVO implements MemberOrderDisplay {

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

    @Schema(description = "支付金额")
    private BigDecimal payAmount;

    @Schema(description = "会员ID")
    private String memberId;

    @Schema(description = "会员编号")
    private String memberNo;

    @Schema(description = "会员姓名/昵称")
    private String memberNickname;

    @Schema(description = "会员手机")
    private String memberMobile;

    @Schema(description = "用户姓名（流水冗余，展示以 memberNickname 为准）")
    private String memberName;

    @Schema(description = "手机号（流水冗余，展示以 memberMobile 为准）")
    private String mobile;

    @Schema(description = "登录账号")
    private String loginAccount;

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

    @Schema(description = "支付状态名称")
    private String payStatusName;

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

    @Schema(description = "支付类型名称")
    private String payTypeName;

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

    @Schema(description = "支付订单号")
    private String payOrderNo;

    @Schema(description = "业务区分")
    private Integer bizKind;

    @Schema(description = "业务区分名称")
    private String bizKindName;

    @Schema(description = "业务类型")
    private String bizType;

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

    @Schema(description = "业务场景名称")
    private String bizSceneName;

    @Schema(description = "标题")
    private String subject;

    @Schema(description = "支付渠道")
    private String payChannel;

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