package infra

import "fmt"

// MetabaseUpdateUser actualiza campos de un usuario en Metabase.
// fields es un map con los campos a actualizar. Campos validos:
// first_name, last_name, email, is_superuser, group_ids, locale, login_attributes.
func MetabaseUpdateUser(client MetabaseClient, userID int, fields map[string]any) (map[string]any, error) {
	path := fmt.Sprintf("/api/user/%d", userID)

	result, err := metabaseRequest("PUT", client.BaseURL, client.Token, path, fields)
	if err != nil {
		return nil, fmt.Errorf("metabase update user %d: %w", userID, err)
	}

	return result, nil
}
