package io.wdd.func.xray.beans.xray.transport;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
;
import io.wdd.func.xray.beans.xray.protocol.outbound.*;
import lombok.Data;

@Data
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "protocol")
@JsonSubTypes(value = {
        @JsonSubTypes.Type(value = VLESS.class, name = "vless"),
        @JsonSubTypes.Type(value = VMESS.class, name = "vmess"),
        @JsonSubTypes.Type(value = Freedom.class, name = "freedom"),
        @JsonSubTypes.Type(value = Blackhole.class, name = "blackhole"),
})
public abstract class OutboundObject {

    private String sendThrough;
    private String protocol;
    private OutboundConfigurationObject settings;
    private String tag;
    private StreamSettingsObject streamSettings;
    private ProxySettingsObject proxySettings;
    private MuxObject mux;

}

@Data
class ProxySettingsObject {
    private String tag;
}

