package cn.novalon.gym.manage.member.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 会员卡交易流水响应 VO
 * 
 * @author 付嘉
 * @date 2026-05-27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardTransactionVO {

    /**
     * 交易ID
     */
    private Long id;

    /**
     * 会员卡记录ID
     */
    private Long memberCardRecordId;

    /**
     * 会员ID
     */
    private Long memberId;

    /**
     * 会员卡类型ID
     */
    private Long memberCardId;

    /**
     * 操作类型：PURCHASE-购买, DEDUCT-扣次/扣费, RENEW-续费, REFUND-退款, EXPIRE-过期
     */
    private String operationType;

    /**
     * 变动次数
     */
    private Integer changeAmount;

    /**
     * 变动金额
     */
    private Double changeBalance;

    /**
     * 变动后剩余次数
     */
    private Integer afterRemainingCount;

    /**
     * 变动后剩余金额
     */
    private Double afterRemainingBalance;

    /**
     * 关联业务类型
     */
    private String relatedBizType;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
}
