/**
 * InfluxDB formatter
 * Produces the structured object expected by Node-RED InfluxDB nodes:
 *   { measurement, fields, tags, timestamp }
 *
 * @param {string} measurement - The measurement name (e.g. node name)
 * @param {object} metadata    - { fields, tags }
 *   - fields: key/value pairs of changed data points
 *   - tags:   flat key/value string pairs (InfluxDB tags)
 * @returns {string|object} Formatted payload (object for InfluxDB)
 */
function format(measurement, metadata) {
  const { fields, tags } = metadata;
  return {
    measurement: measurement,
    fields: fields,
    tags: tags || {},
    timestamp: new Date(),
  };
}

module.exports = { format };
