lib/wolf_core/application/barton/mappings.rb



module WolfCore
  module Barton
    module Mappings
      PROVIDER_TYPE_MAPPING = {
        'MD' => ENV['MD_PRICING_ID'],
        'DO' => ENV['DO_PRICING_ID'],
        'PA' => ENV['PA_PRICING_ID'],
        'DMD' => ENV['DMD_PRICING_ID'],
        'NP' => ENV['NP_PRICING_ID'],
        'DDS' => ENV['DDS_PRICING_ID'],
      }

      LOCUM_AVAILABILITY_MAP = {
        'PT' => 'Part Time',
        'FT' => 'Full Time',
        'PFI' => 'Not Sure Yet',
        'Interim Locum' => 'Between Permanent Positions',
        'Perm Only' => 'Permanent',
      }

      ORDER_STATUS_MAP = {
        'Listing Qualification' => 'pending',
        'Pending' => 'pending',
        'On Hold' => 'pending',
        'Filled' => 'pending',
        'Open' => 'live',
        'Closed' => 'closed',
      }

      def map_provider_type_to_pricing_id(provider_type)
        pricing_id = PROVIDER_TYPE_MAPPING[provider_type]
        pricing_id || provider_type
      end

      def map_pricing_id_to_provider_type(pricing_id)
        return nil if pricing_id.blank?
        pricing_id = pricing_id.to_s
        provider_type = PROVIDER_TYPE_MAPPING.invert[pricing_id]
        provider_type || pricing_id
      end

      def map_locum_availability(value)
        LOCUM_AVAILABILITY_MAP[value] || value
      end

      def reverse_map_locum_availability(value)
        LOCUM_AVAILABILITY_MAP.invert[value] || value
      end

      def map_order_status(value)
        ORDER_STATUS_MAP[value] || value
      end

      def reverse_map_order_status(value)
        ORDER_STATUS_MAP.invert[value] || value
      end
    end
  end
end