module Langfuse::Utils

def current_timestamp

def current_timestamp
  Time.now.utc.iso8601(3)
end

def deep_stringify_keys(hash)

def deep_stringify_keys(hash)
  return hash unless hash.is_a?(Hash)
  hash.each_with_object({}) do |(key, value), result|
    new_key = key.to_s
    new_value = value.is_a?(Hash) ? deep_stringify_keys(value) : value
    result[new_key] = new_value
  end
end

def deep_symbolize_keys(hash)

def deep_symbolize_keys(hash)
  return hash unless hash.is_a?(Hash)
  hash.each_with_object({}) do |(key, value), result|
    new_key = key.is_a?(String) ? key.to_sym : key
    new_value = value.is_a?(Hash) ? deep_symbolize_keys(value) : value
    result[new_key] = new_value
  end
end

def generate_id

def generate_id
  SecureRandom.uuid
end

def validate_required_fields(data, required_fields)

def validate_required_fields(data, required_fields)
  missing_fields = required_fields.select { |field| data[field].nil? || data[field].to_s.empty? }
  raise ValidationError, "Missing required fields: #{missing_fields.join(', ')}" unless missing_fields.empty?
end