/**
 * 常用操作结果
 */
class OpResult<T> {

    /**
     * 响应代码
     * 2000 ：成功，5000：失败
     * @type {number}
     */
    code?: number = 2000

    /**
     * 响应消息
     * @type {string}
     */
    message?: string = ""

    /**
     * 响应数据
     * @type {T}
     */
    data?: T

    /**
     * 操作成功
     * @param message  响应消息
     * @param data  响应数据
     */
    static success(message: string = "", data: any = undefined): OpResult<any> {
        const result = new OpResult<any>()
        result.data = data
        result.message = message
        return result
    }

    /**
     * 操作失败
     * @param message  响应消息
     * @param data  响应数据
     */
    static error(message: string = "", data: any = undefined): OpResult<any> {
        const result = new OpResult<any>()
        result.code = 5000
        result.data = data
        result.message = message
        return result
    }

    /**
     * 是否成功
     */
    isSuccess?(): boolean {
        return this?.code === 2000
    }
}


export {OpResult}