package infra import "fmt" // MetabaseUpdateDashboard actualiza un dashboard en Metabase. // fields puede incluir metadata del dashboard Y/O la lista completa de dashcards y tabs. // // Para gestionar cards en el dashboard, incluir "dashcards" en fields: // - Agregar card: incluirla con ID negativo (ej: -1, -2) // - Actualizar card: incluirla con su ID positivo existente // - Eliminar card: omitirla del array (el array es el estado deseado completo) // // Campos comunes: name, description, archived, parameters, dashcards, tabs, collection_id. func MetabaseUpdateDashboard(client MetabaseClient, dashboardID int, fields map[string]any) (map[string]any, error) { path := fmt.Sprintf("/api/dashboard/%d", dashboardID) result, err := metabaseRequest("PUT", client.BaseURL, client.Token, path, fields) if err != nil { return nil, fmt.Errorf("metabase update dashboard %d: %w", dashboardID, err) } return result, nil }