# frozen_string_literal: true

require_relative '../models'

module EasyPost::InternalUtilities::StaticMapper
  BY_PREFIX = {
    'adr' => EasyPost::Models::Address,
    'ak' => EasyPost::Models::ApiKey,
    'bank' => EasyPost::Models::PaymentMethod,
    'batch' => EasyPost::Models::Batch,
    'brd' => EasyPost::Models::Brand,
    'ca' => EasyPost::Models::CarrierAccount,
    'card' => EasyPost::Models::PaymentMethod,
    'clm' => EasyPost::Models::Claim,
    'cstinfo' => EasyPost::Models::CustomsInfo,
    'cstitem' => EasyPost::Models::CustomsItem,
    'es' => EasyPost::Models::EndShipper,
    'evt' => EasyPost::Models::Event,
    'hook' => EasyPost::Models::Webhook,
    'ins' => EasyPost::Models::Insurance,
    'order' => EasyPost::Models::Order,
    'payload' => EasyPost::Models::Payload,
    'pickup' => EasyPost::Models::Pickup,
    'pickuprate' => EasyPost::Models::PickupRate,
    'pl' => EasyPost::Models::PostageLabel,
    'plrep' => EasyPost::Models::Report,
    'prcl' => EasyPost::Models::Parcel,
    'rate' => EasyPost::Models::Rate,
    'refrep' => EasyPost::Models::Report,
    'rfnd' => EasyPost::Models::Refund,
    'sf' => EasyPost::Models::ScanForm,
    'shp' => EasyPost::Models::Shipment,
    'shpinvrep' => EasyPost::Models::Report,
    'shprep' => EasyPost::Models::Report,
    'trk' => EasyPost::Models::Tracker,
    'trkrep' => EasyPost::Models::Report,
    'user' => EasyPost::Models::User,
  }.freeze

  BY_TYPE = {
    'Address' => EasyPost::Models::Address,
    'ApiKey' => EasyPost::Models::ApiKey,
    'BankAccount' => EasyPost::Models::PaymentMethod,
    'Batch' => EasyPost::Models::Batch,
    'Brand' => EasyPost::Models::Brand,
    'CarrierAccount' => EasyPost::Models::CarrierAccount,
    'Claim' => EasyPost::Models::Claim,
    'CreditCard' => EasyPost::Models::PaymentMethod,
    'CustomsInfo' => EasyPost::Models::CustomsInfo,
    'CustomsItem' => EasyPost::Models::CustomsItem,
    'EndShipper' => EasyPost::Models::EndShipper,
    'Event' => EasyPost::Models::Event,
    'Insurance' => EasyPost::Models::Insurance,
    'Order' => EasyPost::Models::Order,
    'Parcel' => EasyPost::Models::Parcel,
    'PaymentLogReport' => EasyPost::Models::Report,
    'Pickup' => EasyPost::Models::Pickup,
    'PickupRate' => EasyPost::Models::PickupRate,
    'PostageLabel' => EasyPost::Models::PostageLabel,
    'Rate' => EasyPost::Models::Rate,
    'Refund' => EasyPost::Models::Refund,
    'RefundReport' => EasyPost::Models::Report,
    'Report' => EasyPost::Models::Report,
    'ScanForm' => EasyPost::Models::ScanForm,
    'Shipment' => EasyPost::Models::Shipment,
    'ShipmentInvoiceReport' => EasyPost::Models::Report,
    'ShipmentReport' => EasyPost::Models::Report,
    'TaxIdentifier' => EasyPost::Models::TaxIdentifier,
    'Tracker' => EasyPost::Models::Tracker,
    'TrackerReport' => EasyPost::Models::Report,
    'User' => EasyPost::Models::User,
    'Webhook' => EasyPost::Models::Webhook,
  }.freeze
end
