package utils

import (
	"os"
	"strings"

	"github.com/uptrace/opentelemetry-go-extra/otelzap"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
)

var Env, Role, K8sNsPrefix string

func AwsRoleInit() {
	Env = "prod"
	K8sNsPrefix = "free-tier-prod-"
	Role = "arn:aws:iam::380838443567:role/devtier-billing-iam-role-f697c31"
	Role, ok := os.LookupEnv("AWS_ROLE_ARN")
	if ok && strings.Contains(Role, "385595570414") {
		Env = "dev"
		K8sNsPrefix = "free-tier-nightly-ms-"
	}
	//log.Infof("get aws env=%s, role=%s, devtier namespace=%s*", Env, Role, K8sNsPrefix)

	S3Init(Role)
}

func init() {
	config := zap.NewProductionConfig()
	config.EncoderConfig.TimeKey = "timestamp"
	config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder

	logger, _ := config.Build()

	otelLogger := otelzap.New(logger,
		otelzap.WithTraceIDField(true),
		otelzap.WithMinLevel(zap.InfoLevel),
		otelzap.WithCaller(true),
	)
	otelzap.ReplaceGlobals(otelLogger)
}
