package com.doumee.core.douyin.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* 抖音生活服务接口(goodlife/v1 系列)通用响应外壳。
*
所有抖音生活服务接口的响应都包在此结构下:业务数据在 {@link #data},错误信息在 {@link #extra}。
* 判定接口是否成功统一看 {@link Extra#getErrorCode()} == 0。
*
* @author rk
* @date 2026/06/22
* @param 具体接口的响应数据类型
*/
@Data
public class DouyinBaseResp {
/** 业务数据节点(泛型,由各接口的具体响应类型填充) */
@JSONField(name = "data")
private T data;
/** 扩展信息节点(错误码 / 描述 / logid 等),用于判定成功与排查 */
@JSONField(name = "extra")
private Extra extra;
/**
* 扩展信息(error_code / description / logid 等)。
* {@link #errorCode} 为 0 表示成功,非 0 时 {@link #description} 为错误描述。
*/
@Data
public static class Extra {
/** 错误码,0 表示成功 */
@JSONField(name = "error_code")
private Integer errorCode;
/** 错误/成功描述文案 */
@JSONField(name = "description")
private String description;
/** 子错误码(部分错误会有更细分的子码) */
@JSONField(name = "sub_error_code")
private Integer subErrorCode;
/** 子错误描述 */
@JSONField(name = "sub_description")
private String subDescription;
/** 抖音侧日志ID,排查问题时提供给抖音方 */
@JSONField(name = "logid")
private String logid;
}
}