<?php

declare(strict_types=1);

namespace Gls\GlsPoland\AdePlus;

use Gls\GlsPoland\Soap\ExtSoapEngine\Configuration\ClassMap\ClassMap;
use Gls\GlsPoland\Soap\ExtSoapEngine\Configuration\ClassMap\ClassMapCollection;

class ClassMapFactory
{
    public static function getCollection(): ClassMapCollection
    {
        return new ClassMapCollection(
            new ClassMap('cSession', Authorization\Session::class),
            new ClassMap('cConsign', Consignment\Consignment::class),
            new ClassMap('cSenderAddress', SenderAddress\SenderAddress::class),
            new ClassMap('cServicesBool', Common\Services::class),
            new ClassMap('cServiceDAW', Consignment\DAWOptions::class),
            new ClassMap('cServiceIDENT', Consignment\IDENTOptions::class),
            new ClassMap('cServicePPE', Consignment\PPEOptions::class),
            new ClassMap('cServiceSDS', Consignment\SDSOptions::class),
            new ClassMap('cParcelsArray', Consignment\ParcelsCollection::class),
            new ClassMap('cParcel', Consignment\Parcel::class),
            new ClassMap('cID', Common\Id::class),
            new ClassMap('cConsignExt', Type\CConsignExt::class),
            new ClassMap('cCustomsDeclaration', Type\CCustomsDeclaration::class),
            new ClassMap('cCustomsAttachedFilesArray', Type\CCustomsAttachedFilesArray::class),
            new ClassMap('cCustomsAttachedFile', Type\CCustomsAttachedFile::class),
            new ClassMap('cCustomsArticlesArray', Type\CCustomsArticlesArray::class),
            new ClassMap('cCustomsArticle', Type\CCustomsArticle::class),
            new ClassMap('cConsignsIDsArray', Consignment\ConsignmentIdsCollection::class),
            new ClassMap('cLabels', Printout\Labels::class),
            new ClassMap('cLabelsArray', Printout\LabelsCollection::class),
            new ClassMap('cLabel', Printout\Label::class),
            new ClassMap('cLabelsIdent', Type\CLabelsIdent::class),
            new ClassMap('cPickupsIDsArray', Type\CPickupsIDsArray::class),
            new ClassMap('cPickup', Type\CPickup::class),
            new ClassMap('cConsignBindIDsArray', Pickup\ConsignmentIdsBindingsCollection::class),
            new ClassMap('cConsignBindIDs', Pickup\ConsignmentIdsBinding::class),
            new ClassMap('cReceipt', Printout\PickupReceipt::class),
            new ClassMap('cIdent', Type\CIdent::class),
            new ClassMap('cStringArray', Common\StringArray::class),
            new ClassMap('cPartnerParcelNumber', Type\CPartnerParcelNumber::class),
            new ClassMap('cTrackID', Type\CTrackID::class),
            new ClassMap('cProfilesArray', Type\CProfilesArray::class),
            new ClassMap('cProfile', Type\CProfile::class),
            new ClassMap('cLang', Type\CLang::class),
            new ClassMap('cStatus', SenderAddress\SenderAddressStatus::class),
            new ClassMap('cSenderAddressArray', SenderAddress\SenderAddressesCollection::class),
            new ClassMap('cServices', Services\Services::class),
            new ClassMap('cCODMax', Services\MaxCODAmount::class),
            new ClassMap('cParcelWeightsMax', Services\MaxParcelWeights::class),
            new ClassMap('cCountryCDXMaxArray', Type\CCountryCDXMaxArray::class),
            new ClassMap('cCountryCDXMax', Type\CCountryCDXMax::class),
            new ClassMap('cCity', Type\CCity::class),
            new ClassMap('cBooleanValue', Type\CBooleanValue::class),
            new ClassMap('cValue', Type\CValue::class),
            new ClassMap('cParcelShopArray', ParcelShop\CParcelShopArray::class),
            new ClassMap('cParcelShop', ParcelShop\ParcelShop::class),
            new ClassMap('cParcelShop2Array', ParcelShop\CParcelShop2Array::class),
            new ClassMap('cParcelShop2', ParcelShop\CParcelShop2::class),
            new ClassMap('cParcelShop2OpeningHoursArray', ParcelShop\CParcelShop2OpeningHoursArray::class),
            new ClassMap('cParcelShop2OpeningHours', ParcelShop\CParcelShop2OpeningHours::class),
            new ClassMap('cParcelShop2HolidaysArray', ParcelShop\CParcelShop2HolidaysArray::class),
            new ClassMap('cParcelShop2Holidays', ParcelShop\CParcelShop2Holidays::class),
            new ClassMap('cParcelShop2PaymentsArray', ParcelShop\CParcelShop2PaymentsArray::class),
            new ClassMap('cParcelShop2Payment', ParcelShop\CParcelShop2Payment::class),
            new ClassMap('cParcelShop2GroupsArray', ParcelShop\CParcelShop2GroupsArray::class),
            new ClassMap('cParcelShop2Group', ParcelShop\CParcelShop2Group::class),
            new ClassMap('cParcelShop2ServicesArray', ParcelShop\CParcelShop2ServicesArray::class),
            new ClassMap('cParcelShop2Service', ParcelShop\CParcelShop2Service::class),
            new ClassMap('cParcelShop2ValidsArray', ParcelShop\CParcelShop2ValidsArray::class),
            new ClassMap('cParcelShop2Valid', ParcelShop\CParcelShop2Valid::class),
            new ClassMap('cParcelShop2DescArray', ParcelShop\CParcelShop2DescArray::class),
            new ClassMap('cParcelShop2Desc', ParcelShop\CParcelShop2Desc::class),
            new ClassMap('cParcelShop2InfoArray', ParcelShop\CParcelShop2InfoArray::class),
            new ClassMap('cParcelShop2Info', ParcelShop\CParcelShop2Info::class),
            new ClassMap('cCustomsDecPdf', Type\CCustomsDecPdf::class),
            new ClassMap('cPODsArray', Type\CPODsArray::class),
            new ClassMap('cPOD', Type\CPOD::class),
            new ClassMap('cPodPdf', Type\CPodPdf::class),
            new ClassMap('adeLoginIntegrator', Authorization\LoginIntegrator::class),
            new ClassMap('adeLoginIntegratorResponse', Authorization\LoginIntegratorResponse::class),
            new ClassMap('adeLogout', Authorization\Logout::class),
            new ClassMap('adeLogoutResponse', Authorization\LogoutResponse::class),
            new ClassMap('adePreparingBox_Insert', PreparingBox\Insert::class),
            new ClassMap('adePreparingBox_InsertResponse', PreparingBox\InsertResponse::class),
            new ClassMap('adePreparingBox_InsertExt', Type\AdePreparingBoxInsertExt::class),
            new ClassMap('adePreparingBox_InsertExtResponse', Type\AdePreparingBoxInsertExtResponse::class),
            new ClassMap('adePreparingBox_GetConsignIDs', Type\AdePreparingBoxGetConsignIDs::class),
            new ClassMap('adePreparingBox_GetConsignIDsResponse', Type\AdePreparingBoxGetConsignIDsResponse::class),
            new ClassMap('adePreparingBox_DeleteConsign', PreparingBox\DeleteConsignment::class),
            new ClassMap('adePreparingBox_DeleteConsignResponse', PreparingBox\DeleteConsignmentResponse::class),
            new ClassMap('adePreparingBox_GetConsign', PreparingBox\GetConsignment::class),
            new ClassMap('adePreparingBox_GetConsignResponse', PreparingBox\GetConsignmentResponse::class),
            new ClassMap('adePreparingBox_GetConsignLabels', PreparingBox\GetConsignmentLabels::class),
            new ClassMap('adePreparingBox_GetConsignLabelsResponse', PreparingBox\GetConsignmentLabelsResponse::class),
            new ClassMap('adePreparingBox_GetConsignLabelsExt', PreparingBox\GetConsignmentLabelsExt::class),
            new ClassMap('adePreparingBox_GetConsignLabelsExtResponse', PreparingBox\GetConsignmentLabelsExtResponse::class),
            new ClassMap('adePreparingBox_GetConsignDocs', Type\AdePreparingBoxGetConsignDocs::class),
            new ClassMap('adePreparingBox_GetConsignDocsResponse', Type\AdePreparingBoxGetConsignDocsResponse::class),
            new ClassMap('adePreparingBox_GetConsignsLabels', Type\AdePreparingBoxGetConsignsLabels::class),
            new ClassMap('adePreparingBox_GetConsignsLabelsResponse', Type\AdePreparingBoxGetConsignsLabelsResponse::class),
            new ClassMap('adePreparingBox_GetParcelLabel', Type\AdePreparingBoxGetParcelLabel::class),
            new ClassMap('adePreparingBox_GetParcelLabelResponse', Type\AdePreparingBoxGetParcelLabelResponse::class),
            new ClassMap('adePickup_Create', Pickup\Create::class),
            new ClassMap('adePickup_CreateResponse', Pickup\CreateResponse::class),
            new ClassMap('adePickup_GetIDs', Type\AdePickupGetIDs::class),
            new ClassMap('adePickup_GetIDsResponse', Type\AdePickupGetIDsResponse::class),
            new ClassMap('adePickup_Get', Type\AdePickupGet::class),
            new ClassMap('adePickup_GetResponse', Type\AdePickupGetResponse::class),
            new ClassMap('adePickup_GetConsignBinds', Pickup\GetConsignmentBindings::class),
            new ClassMap('adePickup_GetConsignBindsResponse', Pickup\GetConsignmentBindingsResponse::class),
            new ClassMap('adePickup_GetConsignIDs', Type\AdePickupGetConsignIDs::class),
            new ClassMap('adePickup_GetConsignIDsResponse', Type\AdePickupGetConsignIDsResponse::class),
            new ClassMap('adePickup_GetConsign', Pickup\GetConsignment::class),
            new ClassMap('adePickup_GetConsignResponse', Pickup\GetConsignmentResponse::class),
            new ClassMap('adePickup_GetReceipt', Pickup\GetReceipt::class),
            new ClassMap('adePickup_GetReceiptResponse', Pickup\GetReceiptResponse::class),
            new ClassMap('adePickup_GetLabels', Type\AdePickupGetLabels::class),
            new ClassMap('adePickup_GetLabelsResponse', Type\AdePickupGetLabelsResponse::class),
            new ClassMap('adePickup_GetIdent', Type\AdePickupGetIdent::class),
            new ClassMap('adePickup_GetIdentResponse', Type\AdePickupGetIdentResponse::class),
            new ClassMap('adePickup_GetConsignLabels', Pickup\GetConsignmentLabels::class),
            new ClassMap('adePickup_GetConsignLabelsResponse', Pickup\GetConsignmentLabelsResponse::class),
            new ClassMap('adePickup_GetConsignLabelsExt', Pickup\GetConsignmentLabelsExt::class),
            new ClassMap('adePickup_GetConsignLabelsExtResponse', Pickup\GetConsignmentLabelsExtResponse::class),
            new ClassMap('adePickup_GetParcelLabel', Type\AdePickupGetParcelLabel::class),
            new ClassMap('adePickup_GetParcelLabelResponse', Type\AdePickupGetParcelLabelResponse::class),
            new ClassMap('adePickup_GetParcelsLabels', Type\AdePickupGetParcelsLabels::class),
            new ClassMap('adePickup_GetParcelsLabelsResponse', Type\AdePickupGetParcelsLabelsResponse::class),
            new ClassMap('adePickup_ParcelNumberSearch', Type\AdePickupParcelNumberSearch::class),
            new ClassMap('adePickup_ParcelNumberSearchResponse', Type\AdePickupParcelNumberSearchResponse::class),
            new ClassMap('adePartner_GetParcelNumber', Type\AdePartnerGetParcelNumber::class),
            new ClassMap('adePartner_GetParcelNumberResponse', Type\AdePartnerGetParcelNumberResponse::class),
            new ClassMap('adeTrackID_Get', Type\AdeTrackIDGet::class),
            new ClassMap('adeTrackID_GetResponse', Type\AdeTrackIDGetResponse::class),
            new ClassMap('adeProfile_GetIDs', Type\AdeProfileGetIDs::class),
            new ClassMap('adeProfile_GetIDsResponse', Type\AdeProfileGetIDsResponse::class),
            new ClassMap('adeProfile_GetActive', Type\AdeProfileGetActive::class),
            new ClassMap('adeProfile_GetActiveResponse', Type\AdeProfileGetActiveResponse::class),
            new ClassMap('adeProfile_Change', Type\AdeProfileChange::class),
            new ClassMap('adeProfile_ChangeResponse', Type\AdeProfileChangeResponse::class),
            new ClassMap('adeLang_GetActive', Type\AdeLangGetActive::class),
            new ClassMap('adeLang_GetActiveResponse', Type\AdeLangGetActiveResponse::class),
            new ClassMap('adeLang_Change', Type\AdeLangChange::class),
            new ClassMap('adeLang_ChangeResponse', Type\AdeLangChangeResponse::class),
            new ClassMap('adePfc_GetStatus', Type\AdePfcGetStatus::class),
            new ClassMap('adePfc_GetStatusResponse', Type\AdePfcGetStatusResponse::class),
            new ClassMap('adePfc_GetDictionary', Type\AdePfcGetDictionary::class),
            new ClassMap('adePfc_GetDictionaryResponse', Type\AdePfcGetDictionaryResponse::class),
            new ClassMap('adeSendAddr_GetStatus', SenderAddress\GetStatus::class),
            new ClassMap('adeSendAddr_GetStatusResponse', SenderAddress\GetStatusResponse::class),
            new ClassMap('adeSendAddr_GetDictionary', SenderAddress\GetDictionary::class),
            new ClassMap('adeSendAddr_GetDictionaryResponse', SenderAddress\GetDictionaryResponse::class),
            new ClassMap('adeServices_GetAllowed', Services\GetAllowed::class),
            new ClassMap('adeServices_GetAllowedResponse', Services\GetAllowedResponse::class),
            new ClassMap('adeServices_GetMaxCOD', Services\GetMaxCOD::class),
            new ClassMap('adeServices_GetMaxCODResponse', Services\GetMaxCODResponse::class),
            new ClassMap('adeServices_GetMaxParcelWeights', Services\GetMaxParcelWeights::class),
            new ClassMap('adeServices_GetMaxParcelWeightsResponse', Services\GetMaxParcelWeightsResponse::class),
            new ClassMap('adeServices_GetGuaranteed', Services\GetGuaranteed::class),
            new ClassMap('adeServices_GetGuaranteedResponse', Services\GetGuaranteedResponse::class),
            new ClassMap('adeServices_GetCountriesSDS', Services\GetCountriesSDS::class),
            new ClassMap('adeServices_GetCountriesSDSResponse', Services\GetCountriesSDSResponse::class),
            new ClassMap('adeServices_GetCountriesSRS', Services\GetCountriesSRS::class),
            new ClassMap('adeServices_GetCountriesSRSResponse', Services\GetCountriesSRSResponse::class),
            new ClassMap('adeServices_GetCountriesCDX', Type\AdeServicesGetCountriesCDX::class),
            new ClassMap('adeServices_GetCountriesCDXResponse', Type\AdeServicesGetCountriesCDXResponse::class),
            new ClassMap('adeZip_GetCity', Type\AdeZipGetCity::class),
            new ClassMap('adeZip_GetCityResponse', Type\AdeZipGetCityResponse::class),
            new ClassMap('adeZip_CustomsRequired', Type\AdeZipCustomsRequired::class),
            new ClassMap('adeZip_CustomsRequiredResponse', Type\AdeZipCustomsRequiredResponse::class),
            new ClassMap('adeOption_Get', Type\AdeOptionGet::class),
            new ClassMap('adeOption_GetResponse', Type\AdeOptionGetResponse::class),
            new ClassMap('adeOption_Set', Type\AdeOptionSet::class),
            new ClassMap('adeOption_SetResponse', Type\AdeOptionSetResponse::class),
            new ClassMap('adeParcelShop_SearchByZip', ParcelShop\AdeParcelShopSearchByZip::class),
            new ClassMap('adeParcelShop_SearchByZipResponse', ParcelShop\AdeParcelShopSearchByZipResponse::class),
            new ClassMap('adeParcelShop_SearchByID', ParcelShop\SearchById::class),
            new ClassMap('adeParcelShop_SearchByIDResponse', ParcelShop\SearchByIdResponse::class),
            new ClassMap('adeParcelShop_GetByCountry', ParcelShop\AdeParcelShopGetByCountry::class),
            new ClassMap('adeParcelShop_GetByCountryResponse', ParcelShop\AdeParcelShopGetByCountryResponse::class),
            new ClassMap('adeParcelShop2_GetByCountry', ParcelShop\AdeParcelShop2GetByCountry::class),
            new ClassMap('adeParcelShop2_GetByCountryResponse', ParcelShop\AdeParcelShop2GetByCountryResponse::class),
            new ClassMap('adeParcelShop2_SearchByZip', ParcelShop\AdeParcelShop2SearchByZip::class),
            new ClassMap('adeParcelShop2_SearchByZipResponse', ParcelShop\AdeParcelShop2SearchByZipResponse::class),
            new ClassMap('adePreparingBox_GetConsignCustomsDec', Type\AdePreparingBoxGetConsignCustomsDec::class),
            new ClassMap('adePreparingBox_GetConsignCustomsDecResponse', Type\AdePreparingBoxGetConsignCustomsDecResponse::class),
            new ClassMap('adePickup_GetConsignCustomsDec', Type\AdePickupGetConsignCustomsDec::class),
            new ClassMap('adePickup_GetConsignCustomsDecResponse', Type\AdePickupGetConsignCustomsDecResponse::class),
            new ClassMap('adePickup_GetConsignPODs', Type\AdePickupGetConsignPODs::class),
            new ClassMap('adePickup_GetConsignPODsResponse', Type\AdePickupGetConsignPODsResponse::class),
            new ClassMap('adePOD_Get', Type\AdePODGet::class),
            new ClassMap('adePOD_GetResponse', Type\AdePODGetResponse::class),
            new ClassMap('adeCourier_Order', Type\AdeCourierOrder::class),
            new ClassMap('adeCourier_OrderResponse', Type\AdeCourierOrderResponse::class)
        );
    }
}
