package io.delphiplatform.api.v3.model.tiktok;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

import java.util.Arrays;

/**
 * Enum containing TikTok metrics.
 */
public enum TikTokMetric {

    CREATIONS, LIKES, SHARES, FAVORITES, COMMENTS, VIDEO_VIEWS;

    @JsonCreator
    public static TikTokMetric fromValue(String value) {
        return Arrays.stream(TikTokMetric.values()).filter(
            e -> e.getValue().equalsIgnoreCase(value)
        ).findFirst().orElseThrow(() -> new IllegalArgumentException("Unexpected value '" + value + "'"));
    }

    @JsonValue
    public String getValue() {
        return name().toLowerCase();
    }

    @Override
    public String toString() {
        return name().toLowerCase();
    }
}

