class Attio::Webhook

def prepare_params_for_create(params)

Override create to handle validation
def prepare_params_for_create(params)
  # Handle both url and target_url parameters for convenience
  target_url = params[:target_url] || params["target_url"] || params[:url] || params["url"]
  validate_target_url!(target_url)
  subscriptions = params[:subscriptions] || params["subscriptions"]
  validate_subscriptions!(subscriptions)
  {
    data: {
      target_url: target_url,
      subscriptions: Array(subscriptions).map do |sub|
        # Ensure each subscription has a filter
        sub = sub.is_a?(Hash) ? sub : {"event_type" => sub}
        sub["filter"] ||= {"$and" => []}  # Default empty filter
        sub
      end
    }
  }
end