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'],
        'GP' => ENV['GP_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' => 'pending',
      }

      SUBMITTAL_STAGE_MAP = {
        'Pre-Submission' => 'wait',
        'Submittal' => 'wait',
        'Send Out' => 'wait',
        'On Hold' => 'wait',
        'Offer' => 'wait',
        'Applied Online' => 'wait',
        'Declined Online' => 'declined',
        'Withdraw' => 'declined',
        'Reject' => 'rejected',
      }

      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

      def map_submittal_stage_to_order_application_status(value)
        SUBMITTAL_STAGE_MAP[value] || value
      end

      def revert_map_submittal_stage_to_order_application_status(value)
        SUBMITTAL_STAGE_MAP.invert[value] || value
      end
    end
  end
end