/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.pay;

import lombok.Data;

/**
 * `PayInfoDto`类用于封装支付相关的信息，作为数据传输对象（DTO，Data Transfer Object）在不同的层（例如服务层与控制层之间）传递支付相关的数据，
 * 使得各层之间的交互更加清晰明了，并且通过`lombok`的`@Data`注解自动生成了常用的属性访问方法（如`getter`、`setter`方法）以及`toString`、`hashCode`和`equals`等方法，简化了代码编写。
 * 此类主要包含了支付过程中一些关键信息的属性，方便在支付业务流程中进行数据的传递和处理。
 *
 * @author LGH
 */
@Data
public class PayInfoDto {

    /**
     * 支付信息，如商品名称，这个属性用于描述支付所对应的商品或服务的相关信息，
     * 方便在支付页面展示给用户查看具体支付的是什么内容，或者在支付记录等相关业务逻辑中用于标识支付的具体对象，
     * 例如在电商场景中，可能就是购买的商品的具体名称，像“华为P50手机”之类的具体商品描述。
     */
    private String body;

    /**
     * 支付单号，是支付操作产生的一个唯一标识符，用于区分不同的支付记录，
     * 在整个支付系统中，无论是与支付平台交互、查询支付状态还是后续的业务处理（如对账、退款等操作），
     * 都可以通过这个唯一的支付单号来定位到具体的某一次支付行为，它具有唯一性和不可重复性，保证支付数据的准确性和可追溯性。
     */
    private String payNo;

    /**
     * 付款金额，代表了本次支付需要支付的具体金额数值，精确到小数（一般为货币的金额表示形式），
     * 这个属性明确了支付的具体费用情况，是支付业务中非常关键的一个数据，用于与支付平台确认支付金额、记录支付流水以及后续财务相关的统计等操作。
     */
    private Double payAmount;
}