package com.zsElectric.boot.thirdParty.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 充值档位分页查询响应参数 (data加密前的内容)
 *
 * @author wzq
 */
@Data
public class RechargeLevelPageResponseData implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 总记录数
     */
    @JsonProperty("total")
    private Long total;

    /**
     * 当前页码
     */
    @JsonProperty("pageNum")
    private Integer pageNum;

    /**
     * 每页记录数
     */
    @JsonProperty("pageSize")
    private Integer pageSize;

    /**
     * 总页数
     */
    @JsonProperty("pages")
    private Long pages;

    /**
     * 数据列表
     */
    @JsonProperty("records")
    private List<RechargeLevelItem> records;

    /**
     * 充值档位单项信息
     */
    @Data
    public static class RechargeLevelItem implements Serializable {

        @Serial
        private static final long serialVersionUID = 1L;

        /**
         * 档位ID
         */
        @JsonProperty("id")
        private Long id;

        /**
         * 充值档位名称
         */
        @JsonProperty("name")
        private String name;

        /**
         * 充值金额
         */
        @JsonProperty("money")
        private BigDecimal money;

        /**
         * 状态 (0-不可用 1-可用)
         */
        @JsonProperty("status")
        private Integer status;

        /**
         * 充值提示
         */
        @JsonProperty("tips")
        private String tips;
    }

    /**
     * 创建成功响应数据
     */
    public static RechargeLevelPageResponseData of(Long total, Integer pageNum, Integer pageSize, Long pages, List<RechargeLevelItem> records) {
        RechargeLevelPageResponseData data = new RechargeLevelPageResponseData();
        data.setTotal(total);
        data.setPageNum(pageNum);
        data.setPageSize(pageSize);
        data.setPages(pages);
        data.setRecords(records);
        return data;
    }
}
