package auth

import (
	"log/slog"

	"github.com/gin-gonic/gin"

	"github.com/tidbcloud/AgentTeam/internal/core/authidentity"
	"github.com/tidbcloud/AgentTeam/internal/store/identity"
)

func tryAutoJoinOrganizationsAfterVerifiedLogin(ctx *gin.Context, authFlow AuthFlow, logger *slog.Logger, user identity.User, loginIdentifierKind authidentity.Kind) {
	if authFlow == nil {
		return
	}
	if err := authFlow.AutoJoinOrganizationsAfterVerifiedLogin(ctx.Request.Context(), user, loginIdentifierKind); err != nil && logger != nil {
		logger.WarnContext(ctx.Request.Context(), "auto join organizations after verified login",
			slog.String("user_id", user.ID),
			slog.String("identifier_kind", string(loginIdentifierKind)),
			slog.String("error_class", "auto_join_failed"),
		)
	}
}
