app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb



module SpreeCmCommissioner
  class TripSearchRequestSchema < ApplicationRequestSchema
    params do
      required(:origin_id).value(:integer)
      required(:destination_id).value(:integer)
      required(:date).value(:date)
    end

    rule(:date) do
      key.failure(:must_be_in_future) if value < Time.zone.today
    end

    rule(:origin_id, :destination_id) do
      origin_id = values[:origin_id]
      destination_id = values[:destination_id]

      key.failure(:must_be_different) if origin_id == destination_id
    end
  end
end