package com.fs.huifuPay.dto;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 订单信息 DTO
 *
 * <p>此类用于封装订单的详细信息，包括订单状态、支付信息、商户信息等。</p>
 *
 * @author xdd
 * @version 1.0
 * @since 2025-02-27
 */
@Data
public class QueryOrderInfoDTO implements Serializable {

    /**
     * 订单状态
     * <p>
     * 订单状态：
     * <ul>
     *     <li>10 - 初始状态</li>
     *     <li>60 - 交易中</li>
     *     <li>70 - 交易失败</li>
     *     <li>80 - 订单关闭</li>
     *     <li>90 - 交易成功</li>
     * </ul>
     */
    private String status;

    /**
     * 成功时间 (YYYYMMDDHHmmss)
     * <p>使用 {@link java.time.LocalDateTime} 类型，方便进行时间处理。</p>
     */
    private String succTime;
     /**
     *  转换SuccTime,格式为YYYYMMDDHHmmss
     */
     public LocalDateTime getFormatSuccTime() {
        if(this.succTime !=null && !this.succTime.isEmpty()){
           DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
           return   LocalDateTime.parse(this.succTime,formatter);
        }
        return  null;

    }
    /**
     * 支付成功金额（订单状态为成功时返回）
     */
    private BigDecimal succTrxAmt;

    /**
     * 支付方式（具体枚举值见《线上收银台支付方式》）
     */
    private String payType;

    /**
     * 白条支付订单号（支付方式为白条支付时返回，表示在支付平台在白条系统的订单号）
     */
    private String loanPayOrder;

    /**
     * 商户手续费（订单状态为成功时返回，现阶段为 0）
     */
    private BigDecimal fee;

    /**
     * 支付来源：
     * <ul>
     *     <li>00 - PC</li>
     *     <li>01 - APP</li>
     *     <li>02 - H5</li>
     * </ul>
     */
    private String trxPaySource;

    /**
     * 第三方客户号
     */
    private String payCstNo;

    /**
     * 预下单传了返回地址，此字段会返回相应数据
     */
    private String payReturnUrl;

    /**
     * 渠道交易流水号
     */
    private String chlTrxId;
}
