package com.qdb.sdk.model.response;

import lombok.Data;

import java.util.Date;

/**
 * 企得宝ERP API 统一响应对象
 * <p>
 * 所有API统一返回以下格式：
 * <pre>
 * {
 *   "errorCode": null,
 *   "msg": "操作成功",
 *   "data": { ... },
 *   "date": null,
 *   "version": null,
 *   "success": true
 * }
 * </pre>
 * </p>
 *
 * @param <T> data 字段数据类型
 * @author qdb-sdk
 * @version 1.0.0
 */
@Data
public class QdbResponse<T> {

    /**
     * 错误编码，成功时为 null
     */
    private String errorCode;

    /**
     * 提示信息
     */
    private String msg;

    /**
     * 成功时返回数据，失败为 null
     */
    private T data;

    /**
     * 响应时间
     */
    private Date date;

    /**
     * 版本信息
     */
    private Integer version;

    /**
     * 成功为 true，失败为 false
     */
    private Boolean success;

    /**
     * 判断响应是否成功
     *
     * @return true 表示成功
     */
    public boolean isSuccess() {
        return Boolean.TRUE.equals(success);
    }
}
