package com.atmob.keyboard_android.model.base

import androidx.annotation.Keep
import java.io.Serializable

/**
 * 响应基类
 */
@Keep
data class BaseResp<T>(
    /**
     * 响应码
     */
    val code: Int,
    /**
     * 消息
     */
    val message: String,
    /**
     * 数据
     */
    val data: T?
) : Serializable {
    companion object {
        /**
         * 成功响应
         */
        fun <T> success(data: T?): BaseResp<T> {
            return BaseResp<T>(
                0,
                "",
                data
            )
        }

        /**
         * 错误响应
         */
        fun <T> error(
            errorCode: Int = -1,
            errorMsg: String = "请求失败，请稍后重试"
        ): BaseResp<T> {
            return BaseResp<T>(
                errorCode,
                errorMsg,
                null
            )
        }
    }
}