package versioning

import (
	"context"
	"fmt"
)

type Provider interface {
	Latest(ctx context.Context) (string, error)
}

type StaticProvider struct {
	version string
}

func NewStaticProvider(version string) *StaticProvider {
	return &StaticProvider{version: Normalize(version)}
}

func (provider *StaticProvider) Latest(context.Context) (string, error) {
	if provider == nil {
		return "", fmt.Errorf("static provider is nil")
	}
	if provider.version == "" {
		return "", fmt.Errorf("static provider version is empty")
	}
	return provider.version, nil
}
