package com.qmth.boot.core.retrofit.annotatioin;

import com.qmth.boot.core.retrofit.interfaces.CustomizeRetrofitConfiguration;
import org.springframework.boot.logging.LogLevel;
import org.springframework.stereotype.Service;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Service
public @interface RetrofitClient {

    /**
     * 访问地址前缀，默认空白
     *
     * @return
     */
    String baseUrl() default "";

    /**
     * 日志级别，默认关闭
     *
     * @return
     */
    LogLevel logLevel() default LogLevel.OFF;

    /**
     * 是否直接返回数据对象而不使用Call包装，默认为true
     *
     * @return
     */
    boolean directReturn() default true;

    /**
     * 自定义客户端配置类，使用时会尝试从SpringContext中按Class获取
     *
     * @return
     */
    Class<? extends CustomizeRetrofitConfiguration> configuration() default CustomizeRetrofitConfiguration.VoidRetrofitConfiguration.class;

}
