package utils

import (
	"fmt"
	"strings"

	"github.com/suno-ai/glockenspiel/studio_api_flute/internal/api/handlers"
)

func GetMajorModelVersion(modelName string) string {
	if !strings.Contains(modelName, "chirp") {
		return ""
	}

	if strings.Contains(modelName, "v3p5") {
		return "v3.5"
	}

	for i := 4; i >= 0; i-- {
		v := fmt.Sprintf("v%d", i)
		if strings.Contains(modelName, v) {
			// this is a temp hack
			if v == "v4" {
				v = "v3"
			}
			return v
		}
	}

	return ""
}

func DereferenceConfigurations(configurations *map[string]int32) map[string]int32 {
	if configurations == nil {
		return nil
	}
	return *configurations
}

func DereferenceStringSlice(imageIDs *[]string) []string {
	if imageIDs == nil {
		return nil
	}
	return *imageIDs
}

func DereferenceClips(clips *[]handlers.Clip) []handlers.Clip {
	if clips == nil {
		return nil
	}
	return *clips
}
