package com.haha.service.payment.payscore;

import lombok.Data;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 支付分 - 统一响应结果
 */
@Data
public class PayScoreResult {
    
    /**
     * 是否成功
     */
    private boolean success;
    
    /**
     * 商户服务订单号
     */
    private String outOrderNo;
    
    /**
     * 服务订单状态: CREATED/DOING/USER_PAYING/DONE/REVOKED
     */
    private String state;
    
    /**
     * 小程序调起支付分确认页的package参数
     */
    private String packageStr;
    
    /**
     * 微信支付订单号（退款用，来自 collection.details[0].transaction_id）
     */
    private String transactionId;

    /**
     * 总金额（元）
     */
    private BigDecimal totalAmount;
    
    /**
     * 错误码
     */
    private String errorCode;
    
    /**
     * 错误信息
     */
    private String errorMsg;
    
    /**
     * 原始响应数据
     */
    private Map<String, Object> rawData;
    
    public static PayScoreResult success(String outOrderNo, String state) {
        PayScoreResult result = new PayScoreResult();
        result.setSuccess(true);
        result.setOutOrderNo(outOrderNo);
        result.setState(state);
        return result;
    }
    
    public static PayScoreResult fail(String errorCode, String errorMsg) {
        PayScoreResult result = new PayScoreResult();
        result.setSuccess(false);
        result.setErrorCode(errorCode);
        result.setErrorMsg(errorMsg);
        return result;
    }
}
