<?php
namespace App\Entity\ExternalPartner;
use App\Entity\ContentDistribution\AgenturFuerArbeit\DestatisEconomicSector;
use App\Entity\ContentDistribution\IntegratedExternalPartnerCustomerContentDistributionValue;
use App\Entity\Profile;
use App\Entity\ProfileBlock;
use App\Enum\ExternalPartner\IntegratedExternalPartnerCustomer\AcquisitionMethod;
use App\Enum\ExternalPartner\IntegratedExternalPartnerCustomer\BilledParty;
use App\Service\DestatisEconomicSectorService;
use App\Service\ExternalPartner\IntegratedExternalPartnerCustomerService;
use App\Utility\ReflectionHelper;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Exception;
use InvalidArgumentException;
use JanusHercules\ExtendedApplicationQuestionnaire\Domain\Entity\ExtendedApplicationCustomerQuestionTemplate;
use JanusHercules\IntegratedExternalPartnerCustomers\Domain\Entity\WeclappContract;
use JanusHercules\IntegratedExternalPartnerCustomers\Domain\Entity\WeclappParty;
/**
* @ORM\Entity
*
* @ORM\Table(
* name="integrated_external_partner_customers",
* uniqueConstraints={
*
* @ORM\UniqueConstraint(name="external_partners_id_business_name_idx", columns={"external_partners_id", "business_name"}),
* @ORM\UniqueConstraint(name="internal_id_idx", columns={"internal_id"})
* }
* )
*/
class IntegratedExternalPartnerCustomer
{
/* IMPORTANT!
* Whenever a new customer is defined here,
* it MUST be added to the documentation at
* https://go-gastro.atlassian.net/wiki/spaces/SD/pages/1171783681/Austausch+fachlicher+Daten+mit+Dritten
*/
public const string INTERNAL_ID_WISAG = 'wisag';
public const string INTERNAL_ID_REWE = 'rewe';
public const string INTERNAL_ID_EDEKA_NST_1 = 'edeka-nst-1';
public const string INTERNAL_ID_EDEKA_NST_2 = 'edeka-nst-2';
public const string INTERNAL_ID_DEKRA = 'dekra';
public const string INTERNAL_ID_KAUFLAND = 'kaufland';
public const string INTERNAL_ID_TANK_UND_RAST = 'tank-und-rast';
public const string INTERNAL_ID_DEUTSCHE_HOSPITALITY = 'deutsche-hospitality';
public const string INTERNAL_ID_DEUTSCHE_HOSPITALITY_2 = 'deutsche-hospitality-2';
public const string INTERNAL_ID_YUM = 'yum';
public const string INTERNAL_ID_HAYS = 'hays';
public const string INTERNAL_ID_HORNBACH = 'hornbach';
public const string INTERNAL_ID_GLOBUS = 'globus';
public const string INTERNAL_ID_STARBUCKS = 'starbucks';
public const string INTERNAL_ID_BARTELS_LANGNESS = 'bartels-langness';
public const string INTERNAL_ID_STAFFPILOT = 'staffpilot';
public const string INTERNAL_ID_ALLRESTO = 'allresto';
public const string INTERNAL_ID_AREAS = 'areas';
public const string INTERNAL_ID_MSP_MEINHARDT = 'msp-meinhardt';
public const string INTERNAL_ID_CASUALFOOD = 'casualfood';
public const string INTERNAL_ID_CELLIT = 'cellit';
public const string INTERNAL_ID_MISTERSPEX = 'misterspex';
public const string INTERNAL_ID_SMARTVENTURES = 'smartventures';
public const string INTERNAL_ID_LENKZEIT = 'lenkzeit';
public const string INTERNAL_ID_TDC_HOSPITALITY = 'tdc-hospitality';
public const string INTERNAL_ID_ROC = 'roc';
public const string INTERNAL_ID_ROSSMANN = 'rossmann';
public const string INTERNAL_ID_FLEXITEL = 'flexitel';
public const string INTERNAL_ID_MOEVENPICK = 'moevenpick';
public const string INTERNAL_ID_FAHR_ZEIT = 'fahr-zeit';
public const string INTERNAL_ID_GLOBETROTTER = 'globetrotter';
public const string INTERNAL_ID_KOETTER = 'koetter';
public const string INTERNAL_ID_CONCENTRIX = 'concentrix';
public const string INTERNAL_ID_AVEO = 'aveo';
public const string INTERNAL_ID_EDEKA_SUEDWEST_1 = 'edeka-suedwest-1';
public const string INTERNAL_ID_EDEKA_SUEDWEST_2 = 'edeka-suedwest-2';
public const string INTERNAL_ID_FLASCHENPOST = 'flaschenpost';
public const string INTERNAL_ID_XING = 'xing';
public const string INTERNAL_ID_KOETTER_PERSONAL = 'koetter-personal';
public const string INTERNAL_ID_PREMIER_INN = 'premier-inn';
public const string INTERNAL_ID_BOFROST = 'bofrost';
public const string INTERNAL_ID_EDEKA_SUEDWEST_GH = 'edeka-suedwest-gh';
public const string INTERNAL_ID_EDEKA_SUEDWEST_GH_AZUBI = 'edeka-suedwest-gh-azubi';
public const string INTERNAL_ID_HOFMANNS_CATERING = 'hofmanns-catering';
public const string INTERNAL_ID_GERRYWEBER = 'gerryweber';
public const string INTERNAL_ID_COPART = 'copart';
public const string INTERNAL_ID_DEUTSCHE_BAHN_AG = 'deutsche-bahn-ag';
public const string INTERNAL_ID_DEUTSCHE_BAHN_AG_AZUBI = 'deutsche-bahn-ag-azubi';
public const string INTERNAL_ID_ROSSMANN_MILCH_UND_ZUCKER = 'rossmann-milch-und-zucker';
public const string INTERNAL_ID_ROSSMANN_MILCH_UND_ZUCKER_AUSBILDUNG = 'rossmann-milch-und-zucker-ausbildung';
public const string INTERNAL_ID_UNIQUE_GEWERBLICH = 'unique-gewerblich';
public const string INTERNAL_ID_KAUFLAND_AUSHILFE = 'kaufland-aushilfe';
public const string INTERNAL_ID_HUGO_BOSS_RJME = 'hugo-boss-rjme';
public const string INTERNAL_ID_PREMIER_INN_GH = 'premier-inn-gh';
public const string INTERNAL_ID_GAUSELMANN_AG = 'gauselmann-ag';
public const string INTERNAL_ID_SEA_CHEFS = 'sea-chefs';
public const string INTERNAL_ID_A_UND_H_ZEITARBEIT = 'a-und-h-zeitarbeit';
public const string INTERNAL_ID_KAUFLAND_XML = 'kaufland-xml';
public const string INTERNAL_ID_KAUFLAND_XML_AUSBILDUNG = 'kaufland-xml-ausbildung';
public const string INTERNAL_ID_TENHIL_STELLENANZEIGEN_DE = 'tenhil-stellenanzeigen-de';
public const string INTERNAL_ID_TENHIL_YOURFIRM = 'tenhil-yourfirm';
public const string INTERNAL_ID_TENHIL_REGIO_JOBANZEIGER = 'tenhil-regio-jobanzeiger';
public const string INTERNAL_ID_TENHIL_JOBBLITZ = 'tenhil-jobblitz';
public const string INTERNAL_ID_TENHIL_KALAYDO = 'tenhil-kalaydo';
public const string INTERNAL_ID_TENHIL_IT_JOBS = 'tenhil-it-jobs';
public const string INTERNAL_ID_EDEKA_SUEDBAYERN = 'edeka-suedbayern';
public const string INTERNAL_ID_TIPICO = 'tipico';
public const string INTERNAL_ID_ESPITAS = 'espitas';
public const string INTERNAL_ID_IKEA = 'ikea';
public const string INTERNAL_ID_NATSU_FOODS = 'natsu-foods';
public const string INTERNAL_ID_WISAG_CONCLUDIS_API = 'wisag-concludis-api';
public const string INTERNAL_ID_MEINESTADT_DE = 'meinestadt-de';
public const string INTERNAL_ID_AMREST_DE = 'amrest-de';
public const string INTERNAL_ID_SUPERBIOMARKT = 'superbiomarkt';
public const string INTERNAL_ID_VION = 'vion';
public const string INTERNAL_ID_DBA_RJME = 'dba-rjme';
public const string INTERNAL_ID_GLOBUS_TALENTSCONNECT = 'globus-talentsconnect';
public const string INTERNAL_ID_POLYGON_RJME = 'polygon-rjme';
public const string INTERNAL_ID_DEUTSCHE_TECHNIKBERATUNG = 'deutsche-technikberatung';
public const string INTERNAL_ID_DEUTSCHE_TECHNIKBERATUNG_2 = 'deutsche-technikberatung-2';
public const string INTERNAL_ID_EMONS = 'emons';
public const string INTERNAL_ID_GLOBUS_NEUTRAUBLING = 'globus-neutraubling';
public const string INTERNAL_ID_MOSCHMOSCH = 'moschmosch';
public const string INTERNAL_ID_AH_TRADING = 'ah-trading';
public const string INTERNAL_ID_RHENUS = 'rhenus';
public const string INTERNAL_ID_TALK2MOVE = 'talk2move';
public const string INTERNAL_ID_BACKSTUBE_WUNSCH = 'backstube-wuensche';
public const string INTERNAL_ID_ADP = 'adp';
public const string INTERNAL_ID_SECURITAS_RJME = 'securitas-rjme';
public const string INTERNAL_ID_TREND_PERSONAL = 'trend-personal';
public const string INTERNAL_ID_JOHANNESBAD = 'johannesbad';
public const string INTERNAL_ID_ALLDRINK = 'alldrink';
public const string INTERNAL_ID_BOFINGER_RJME = 'bofinger-rjme';
public const string INTERNAL_ID_REGIOCAST = 'regiocast';
public const string INTERNAL_ID_DEKRA_COMPLEET = 'dekra-compleet';
public const string INTERNAL_ID_RANGER_MARKETING = 'ranger-marketing';
public const string INTERNAL_ID_ADECCO = 'adecco';
public const string INTERNAL_ID_A_UND_O_HOSTELS = 'a-und-o-hostels';
public const string INTERNAL_ID_AHORN_HOTELS = 'ahorn-hotels';
public const string INTERNAL_ID_AHORN_HOTELS_AZUBI = 'ahorn-hotels-azubi';
public const string INTERNAL_ID_KAEFER = 'kaefer';
public const string INTERNAL_ID_LENNARTZ_RJME = 'lennartz-rjme';
public const string INTERNAL_ID_DZINGEL = 'dzingel';
public const string INTERNAL_ID_MUTH_TREUHAND_RJME = 'muth-treuhand-rjme';
public const string INTERNAL_ID_MARC_O_POLO_GH = 'marc-o-polo-gh';
public const string INTERNAL_ID_HELLOFRESH = 'hellofresh';
public const string INTERNAL_ID_DPDHL = 'dpdhl';
public const string INTERNAL_ID_THYSSENKRUPP = 'thyssenkrupp';
public const string INTERNAL_ID_EPOS = 'epos';
public const string INTERNAL_ID_WEKA_RJME = 'weka-rjme';
public const string INTERNAL_ID_HEPPNER_RJME = 'heppner-rjme';
public const string INTERNAL_ID_WUHRER_UND_RIES = 'wuhrer-und-ries-rjme';
public const string INTERNAL_ID_MID = 'mid-rjme';
public const string INTERNAL_ID_PFEIFFER = 'pfeifer-rjme';
public const string INTERNAL_ID_RETRUST = 'retrust';
public const string INTERNAL_ID_KANZLEI_WINKELMANN_RJME = 'kanzlei-winkelmann-rjme';
public const string INTERNAL_ID_SCHMID = 'schmid';
public const string INTERNAL_ID_MAGELLAN = 'magellan';
public const string INTERNAL_ID_RUDOLF_WEBER = 'rudolf-weber';
public const string INTERNAL_ID_RUNMED_RJME = 'runmed-rjme';
public const string INTERNAL_ID_ACCU = 'accu';
public const string INTERNAL_ID_AUTOHAUS_HECKER_RJME = 'autohaus-hecker';
public const string INTERNAL_ID_BAUER_RJME = 'bauer-rjme';
public const string INTERNAL_ID_BAUER_LEBENSLAUFPFLICHT_RJME = 'bauer-lebenslaufpflicht-rjme';
public const string INTERNAL_ID_PIEPENBROCK = 'piepenbrock';
public const string INTERNAL_ID_CLOPPENBURG = 'cloppenburg';
public const string INTERNAL_ID_AUTO1 = 'auto1';
public const string INTERNAL_ID_WITHTEC = 'withtec';
public const string INTERNAL_ID_JOBOO = 'joboo-rjme';
public const string INTERNAL_ID_CONDOR_SICHERHEIT = 'condor';
public const string INTERNAL_ID_LIDL = 'lidl';
public const string INTERNAL_ID_LANDHAUS_STRICKER_RJME = 'landhaus-stricker-rjme';
public const string INTERNAL_ID_S_FINANZDIENSTE_GMBH_DER_SPARKASSE_KREFELD = 's-finanzdienste-rjme';
public const string INTERNAL_ID_EDEKA_NORD_GH = 'edeka-nord';
public const string INTERNAL_ID_ROFU = 'rofu';
public const string INTERNAL_ID_ZURICH_RJME = 'zurich-rjme';
public const string INTERNAL_ID_FROZENFISH_RJME = 'frozenfish-rjme';
public const string INTERNAL_ID_DPDHL_AZUBI = 'dpdhl-azubi';
public const string INTERNAL_ID_EXPACK_RJME = 'expack-rjme';
public const string INTERNAL_ID_KOENIGSTEINER_RJME = 'koenigsteiner-rjme';
public const string INTERNAL_ID_WACKLER_GROUP = 'wackler-group';
public const string INTERNAL_ID_LOHNSTEUERHILFEVEREIN = 'lohnsteuerhilfeverein';
public const string INTERNAL_ID_RANGER_MARKETING_RJME = 'ranger-marketing-rjme';
public const string INTERNAL_ID_RANGER_MARKETING_1 = 'ranger-marketing-1';
public const string INTERNAL_ID_ALLIANZ_RJME = 'allianz-rjme';
public const string INTERNAL_ID_INTERNATIONALER_BUND = 'internationaler-bund';
public const string INTERNAL_ID_BAUKNECHT_IMMOBILIEN_RJME = 'bauknecht-immobilien-rjme';
public const string INTERNAL_ID_WUERTH_ELEKTRONIK_RJME = 'würth-elektronik-rjme';
public const string INTERNAL_ID_KOENIGSTEINER_RJME_WMF = 'koenigsteiner-rjme-wmf';
public const string INTERNAL_ID_KOENIGSTEINER_RJME_WMF_SB = 'koenigsteiner-rjme-wmf-sb';
public const string INTERNAL_ID_KOENIGSTEINER_CHECK24_RJME = 'koenigsteiner-check24-rjme';
public const string INTERNAL_ID_REBUY_RJME = 'rebuy-rjme';
public const string INTERNAL_ID_ADICCON_RJME = 'adiccon-rjme';
public const string INTERNAL_ID_KUHLMANN_RJME = 'kuhlmann-rjme';
public const string INTERNAL_ID_CONDOR_RJME = 'condor-rjme';
public const string INTERNAL_ID_DSR_HOTEL_RJME = 'dsr-hotel-rjme';
public const string INTERNAL_ID_GELSENWASSER_RJME = 'gelsenwasser-rjme';
public const string INTERNAL_ID_DASSBACH_KUECHEN_RJME = 'dassbach-kuechen-rjme';
public const string INTERNAL_ID_BUSCH_TEXTILSERVICE_RJME = 'busch-textilservice-rjme';
public const string INTERNAL_ID_BITTNER_RJME = 'bittner-rjme';
public const string INTERNAL_ID_LANDHAUS_FLOTTNER_RJME = 'landhaus-flottner-rjme';
public const string INTERNAL_ID_RAIFFEISEN_MANNHEIM_RJME = 'raiffeisen-mannheim-rjme';
public const string INTERNAL_ID_JOHANNITER_UNFALL_HILFE_RHEIN_MAIN = 'johanniter-unfall-hilfe-rhein-main';
public const string INTERNAL_ID_BERUFSSTARTER = 'berufsstarter';
public const string INTERNAL_ID_STEINHEUER_RJME = 'steinheuer-rjme';
public const string INTERNAL_ID_METZGEREI_MEISINGER_RJME = 'metzgerei-meisinger-rjme';
public const string INTERNAL_ID_ZUM_KUCKUCK_RJME = 'zum-kuckuck-rjme';
public const string INTERNAL_ID_SCHILLOKS_RJME = 'schilloks-rjme';
public const string INTERNAL_ID_VEREINIGTE_HAGELVERSICHERUNG_RJME = 'vereinigte-hagelversicherung-rjme';
public const string INTERNAL_ID_EHRHARDT_REIFEN = 'ehrhardt-reifen';
public const string INTERNAL_ID_REVIDERM = 'reviderm';
public const string INTERNAL_ID_BAUKNECHT_IMMOBILIEN = 'bauknecht-immobilien';
public const string INTERNAL_ID_SANVARTIS = 'sanvartis';
public const string INTERNAL_ID_GESUNDVERSICHERUNG_RJMEN = 'gesundversicherung-rjme';
public const string INTERNAL_ID_ALB_FILS_KLINIKUM = 'alb-fils-klinikum';
public const string INTERNAL_ID_VR_SMART_RJME = 'vr-smart-rjme';
public const string INTERNAL_ID_HEUTE_COMP_RJME = 'heute-comp-rjme';
public const string INTERNAL_ID_POLIFILM_RJME = 'polifilm-rjme';
public const string INTERNAL_ID_APC_CONSULT_RJME = 'apc-consult-rjme';
public const string INTERNAL_ID_DENKINGER = 'denkinger';
public const string INTERNAL_ID_KARL_UHL_RJME = 'karl-uhl-rjme';
public const string INTERNAL_ID_NO_VENTURE_RJME = 'no-venture-rjme';
public const string INTERNAL_ID_VISSIO = 'vissio';
public const string INTERNAL_ID_PIN_AG_RJME = 'pin-ag-rjme';
public const string INTERNAL_ID_PAULINEN_SERVICE_RJME = 'paulinen-service-rjme';
public const string INTERNAL_ID_SEEDAMM_RJME = 'seedamm-rjme';
public const string INTERNAL_ID_SCHAEFFLER_RJME = 'schaeffler-rjme';
public const string INTERNAL_ID_AXICOM_RJME = 'axicom-rjme';
public const string INTERNAL_ID_ALLIANZ_DIGITAL_RJME = 'allianz-digital-rjme';
public const string INTERNAL_ID_DUSSMAN_RJME = 'dussmann-rjme';
public const string INTERNAL_ID_INTILION_RJME = 'intilion-rjme';
public const string INTERNAL_ID_LBS_IMMOBILIEN_RJME = 'lbs-immobilien-rjme';
public const string INTERNAL_ID_LBS_BAUSPARKASSE_NORDOST_RJME = 'lbs-bausparkasse-nordost-rjme';
public const string INTERNAL_ID_SOFTGARDEN_BAYWA_AG = 'softgarden-baywa-ag';
public const string INTERNAL_ID_SOFTGARDEN_BAYWA_HAUSTECHNIK = 'softgarden-baywa-haustechnik';
public const string INTERNAL_ID_BRAND_ENERGY_RJME = 'brand-energy-rjme';
public const string INTERNAL_ID_CEWE_RJME = 'cewe-rjme';
public const string INTERNAL_ID_HTE_RJME = 'hte-rjme';
public const string INTERNAL_ID_ALLIANZ_DIGITAL_SUED_RJME = 'allianz-digital-sued-rjme';
public const string INTERNAL_ID_DELAVAL_RJME = 'delaval-rjme';
public const string INTERNAL_ID_GEYER_EDELSTAHL_RJME = 'geyer-edelstahl-rjme';
public const string INTERNAL_ID_DVELOP_RJME = 'd-velop-rjme';
public const string INTERNAL_ID_HENKEL_MED_PERSONAL_RJME = 'henkel-med-personal-rjme';
public const string INTERNAL_ID_EGGELBUSCH_RJME = 'eggelbusch-rjme';
public const string INTERNAL_ID_RUNMED = 'runmed';
public const string INTERNAL_ID_CAREVOLUTION_RJME = 'carevolution-rjme';
public const string INTERNAL_ID_DENTALLABOR_FILSER_RJME = 'dentallabor-filser-rjme';
public const string INTERNAL_ID_ALLIANZ_ESSEN_RJME = 'allianz-essen-rjme';
public const string INTERNAL_ID_ALLIANZ_BERLIN_BRANDENBURG_RJME = 'allianz-berlin-brandenburg-rjme';
public const string INTERNAL_ID_EMA_VERMITTLUNG = 'ema-vermittlung';
public const string INTERNAL_ID_MAMGO_ONOLDIA_RJME = 'mamgo-onoldia-rjme';
public const string INTERNAL_ID_ALMA_HOTEL_RJME = 'alma-hotel-rjme';
public const string INTERNAL_ID_MAMGO_RJME = 'mamgo-rjme';
public const string INTERNAL_ID_DAVIS_SENIORENDIENST_RJME = 'davis-seniorendienst-gmbh-rjme';
public const string INTERNAL_ID_SCHENKER_DEUTSCHLAND = 'schenker-deutschland';
public const string INTERNAL_ID_ALLIANZ_POTSDAM_RJME = 'allianz-potsdam-rjme';
public const string INTERNAL_ID_EDEKA_SUEDBAYERN_RJME = 'edeka-südbayern-rjme';
public const string INTERNAL_ID_STUDIENKREIS_WILLICH_RJME = 'studienkreis-willich-rjme';
public const string INTERNAL_ID_SCHOELER_UND_WERNER_RJME = 'schoeler-plus-werner-rjme';
public const string INTERNAL_ID_IFU_FUNNEL_RJME = 'ifu-funnel-rjme';
public const string INTERNAL_ID_ALLIANZ_AACHEN_RJME = 'allianz-aachen-rjme';
public const string INTERNAL_ID_WEGWEISER_RJME = 'wegweiser-rjme';
public const string INTERNAL_ID_STEPSTONE = 'stepstone';
public const string INTERNAL_ID_THERAPIEZENTRUM_NORDHESSEN_RJME = 'therapiezentrum-nordhessen-rjme';
public const string INTERNAL_ID_AB_CONSTRUCTION_RJME = 'ab-constructions-rjme';
public const string INTERNAL_ID_SK_MEDICAL_CARE_SERVICE_RJME = 'sk-medical-care-service-rjme';
public const string INTERNAL_ID_ALLIANZ_KOELN_BONN_RJME = 'allianz-koeln-bonn-rjme';
public const string INTERNAL_ID_JAMMERTAL_RESORT_RJME = 'jammertal-resort-rjme';
public const string INTERNAL_ID_VIVEA_BAD_HAERING_RJME = 'vivea-bad-haering-rjme';
public const string INTERNAL_ID_DAS_SIEBEN_RJME = 'das-sieben-rjme';
public const string INTERNAL_ID_HEADACCOUNT_TESTKUNDE = 'headaccount-testkunde';
public const string INTERNAL_ID_RENOVA_RJME = 'renova-rjme';
public const string INTERNAL_ID_BLUMENSTIEL_RJME = 'blumenstiel-rjme';
public const string INTERNAL_ID_ALLIANZ_COTTBUS_RJME = 'allianz-cottbus-rjme';
public const string INTERNAL_ID_PEAK_ONE_RJME = 'peak-one-rjme';
public const string INTERNAL_ID_VORWERK_RJME = 'vorwerk-rjme';
public const string INTERNAL_ID_LTS_RECHTSANWAELTE_RJME = 'lts-rechtsanwaelte-rjme';
public const string INTERNAL_ID_PROTECO_RJME = 'proteco-rjme';
public const string INTERNAL_ID_STEPSTONE34 = 'stepstone-3-4';
public const string INTERNAL_ID_PROGROUP_RJME = 'progroup-rjme';
public const string INTERNAL_ID_VORWERK_PARCHIM_RJME = 'vorwerk-parchim-rjme';
public const string INTERNAL_ID_SOFTGARDEN_PFLANZEN_KOELLE_GARTENCENTER = 'softgarden-pflanzen-koelle-gartencenter';
public const string INTERNAL_ID_APETITO_CATERING = 'apetito-catering';
public const string INTERNAL_ID_KFP_ARCHITEKTEN_RJME = 'kfp-architekten-rjme';
public const string INTERNAL_ID_AVANTI_RJME = 'avanti-rjme';
public const string INTERNAL_ID_MUKIFO_RJME = 'mukifo-rjme';
public const string INTERNAL_ID_LEGABAU_RJME = 'legabau-rjme';
public const string INTERNAL_ID_ELI_DI_FEE_RJME = 'eli-di-fee-rjme';
public const string INTERNAL_ID_FLUX_DESIGN_PRODUCT_RJME = 'flux-design-product-rjme';
public const string INTERNAL_ID_ZUM_SCHWARZEN_BAEREN_RJME = 'zum-schwarzen-baeren-rjme';
public const string INTERNAL_ID_LUEBBE_SPIESS_INGENIEURGESELLSCHAFT_RJME = 'luebbe-spiess-ingenieurgesellschaft-rjme';
public const string INTERNAL_ID_AWG_DRUCK_GMBH_RJME = 'awg-druck-gmbh-rjme';
public const string INTERNAL_ID_PRAXIS_ANGELA_STAHL_RJME = 'praxis-dr-med-angela-stahl-rjme';
public const string INTERNAL_ID_KAENGURUH_KUVERT_RJME = 'kaenguruh-kuvert-gmbh-rjme';
public const string INTERNAL_ID_KOENIGSTEINER_MICHAELIGARTEN_HABERL_GASTRONOMIE_RJME = 'koenigsteiner-michaeligarten-haberl-gastronomie-rjme';
public const string INTERNAL_ID_HANDELSUNTERNEHMEN_MANI_RJME = 'handelsunternehmen-mani-rjme';
public const string INTERNAL_ID_RADWELT_COESFELD_RJME = 'radwelt-coesfeld-rjme';
public const string INTERNAL_ID_KOENIGSTEINER_MEDI_GMBH_RJME = 'koenigsteiner-medi-gmbh-rjme';
public const string INTERNAL_ID_A_UND_H_ZEITARBEIT_XML = 'a-und-h-zeitarbeit-xml';
public const string INTERNAL_ID_CONTACT_100 = 'contact-100-xml';
public const string INTERNAL_ID_ARZTPILOT_PERSONALVERMITTLUNG = 'arztpilot-personalvermittlung-rjme';
public const string INTERNAL_ID_E_PLUS_S_FAHRZEUGTECHNIK_RJME = 'e-plus-s-fahrzeugtechnik';
public const string INTERNAL_ID_PS_ZENTRUM_RJME = 'ps-zentrum-rjme';
public const string INTERNAL_ID_ALLIANZ_NEUBRANDENBURG_RJME = 'allianz-neubrandenburg-rjme';
public const string INTERNAL_ID_KOELSCH_KULTUR_GMBH_RJME = 'koelsch-kultur-gmbh-rjme';
public const string INTERNAL_ID_BBG_GMBH_RJME = 'bbg-gmbh-rjme';
public const string INTERNAL_ID_EINS_KOMMA_FUENF_GRAD_RJME = '1komma5grad-rjme';
public const string INTERNAL_ID_MAKE_A_STARTUP_SERVICES_RJME = 'make-a-startup-services-gmbh-rjme';
public const string INTERNAL_ID_TUCHFABRIK_WILLY_SCHMITZ_RJME = 'tuchfabrik-willy-schmitz-rjme';
public const string INTERNAL_ID_AI_FITNESS = 'ai-fitness-xml';
public const string INTERNAL_ID_DTR_GMBH_RJME = 'dtr-gmbh-rjme';
public const string INTERNAL_ID_LEBENSHILFE_LEVERKUSEN_RJME = 'lebenshilfe-leverkusen-rjme';
public const string INTERNAL_ID_GLOBUS_HANDELSHOF_TOENISVORST = 'globus-handelshof-st-wendel-betriebsstaette-toenisvorst';
public const string INTERNAL_ID_GLOBUS_HANDELSHOF_TOENISVORST_RJME = 'globus-handelshof-betriebsstaette-toenisvorst-rjme';
public const string INTERNAL_ID_DQUADRAT_LIVING_GMBH = 'softgarden-dquadrat-living-gmbh';
public const string INTERNAL_ID_IMMOBILIEN_SERVICE_DEUTSCHLAND_XML = 'immobilien-service-deutschland-xml';
public const string INTERNAL_ID_FUSSPFLEGE_EVA_MARIA_WIESENER_RJME = 'fusspflege-eva-maria-wiesener-rjme';
public const string INTERNAL_ID_ALLRESTO_FLUGHAFEN_MUENCHEN_RJME = 'allresto-flughafen-muenchen-rjme';
public const string INTERNAL_ID_VOSS_BAUELEMENTE = 'voss-bauelemente-rjme';
public const string INTERNAL_ID_RUECKENZENTRUM_AM_MICHEL_RJME = 'rueckenzentrum-am-michel-rjme';
public const string INTERNAL_ID_TERRA_VIRIDIS_GMBH_RJME = 'terra-viridis-gmbh-rjme';
public const string INTERNAL_ID_MOGLER_MINERALOELGROSSHANDLUNG_RJME = 'mogler-mineraloelgrosshandlung-gmbh-rjme';
/* IMPORTANT!
* Whenever a new customer is defined here,
* it MUST be added to the documentation at
* https://go-gastro.atlassian.net/wiki/spaces/SD/pages/1171783681/Austausch+fachlicher+Daten+mit+Dritten
*/
/**
* @throws Exception
*/
public function __construct(string $internalId, string $businessName, ExternalPartner $externalPartner)
{
$this->internalId = mb_substr($internalId, 0, 255);
$this->businessName = mb_substr($businessName, 0, 255);
$this->externalPartner = $externalPartner;
$this->externalPartnerQuotas = new ArrayCollection();
$this->campaigns = new ArrayCollection();
$this->isDirectForwarded = false;
$this->isDirectForwardedEbay = true;
$this->isHeightened = false;
$this->isAnonymousForwarded = false;
$this->isCustomerPremiumRadarActivated = false;
$this->premiumRadarConversationMessageSubject = '';
$this->premiumRadarConversationMessageBody = '';
$this->generalFeedCategory = null;
$this->addressesJobseekersFormally = false;
$this->usesFormalHeadline = false;
$this->isVisibleInFeedsManagementPortal = true;
$this->cvForExtendedApplicationsMandatory = true;
$this->isTimetableVisible = true;
$this->recurrentJobsLimit = null;
$this->contactName = null;
$this->hasClickBasedBilling = false;
$this->premiumRadarAdditionalSearchterms = [];
$this->monthlyClickBudgetReached = false;
$this->dailyCrawlerUpdate = false;
$this->clickBudget = [];
$this->isUpdateActive = true;
$this->workingTimesHidden = false;
$this->acquisitionMethod = AcquisitionMethod::INTERNALLY;
$this->billedParty = BilledParty::CUSTOMER;
$this->isContactDataVisible = true;
}
/**
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
protected string $id;
public function getId(): string
{
return $this->id;
}
/**
* @ORM\Column(name="internal_id", type="text", length=255, unique=true, nullable=false)
*/
private string $internalId;
public function getInternalId(): string
{
return $this->internalId;
}
public function setInternalId(string $internalId): void
{
$this->internalId = $internalId;
}
/**
* @ORM\Column(name="business_name", type="text", length=255)
*/
private string $businessName;
public function getBusinessName(): string
{
return $this->businessName;
}
public function setBusinessName(string $businessName): void
{
$this->businessName = $businessName;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\ExternalPartner\ExternalPartner", inversedBy="integratedExternalPartnerCustomers", cascade={"persist"})
*
* @ORM\JoinColumn(name="external_partners_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
protected ExternalPartner $externalPartner;
public function getExternalPartner(): ExternalPartner
{
return $this->externalPartner;
}
public function setExternalPartner(ExternalPartner $externalPartner): void
{
$this->externalPartner = $externalPartner;
}
/**
* @var IntegratedExternalPartnerCustomerQuota[]|Collection
*
* @ORM\OneToMany(targetEntity="IntegratedExternalPartnerCustomerQuota", mappedBy="integratedExternalPartnerCustomer", cascade={"persist", "remove"})
*/
protected Collection $externalPartnerQuotas;
/**
* @return IntegratedExternalPartnerCustomerQuota[]|Collection
*/
public function getExternalPartnerQuotas(): Collection
{
return $this->externalPartnerQuotas;
}
/**
* @var IntegratedExternalPartnerCustomerCampaign[]|Collection
*
* @ORM\OneToMany(targetEntity="IntegratedExternalPartnerCustomerCampaign", mappedBy="integratedExternalPartnerCustomer", cascade={"persist", "remove"})
*/
protected Collection $campaigns;
/**
* @return IntegratedExternalPartnerCustomerCampaign[]|Collection
*/
public function getCampaigns(): Collection
{
return $this->campaigns;
}
/**
* @ORM\Column(name="is_heightened", type="boolean", nullable=false)
*/
protected bool $isHeightened;
public function isHeightened(): bool
{
return $this->isHeightened;
}
public function setIsHeightened(bool $isHeightened): void
{
$this->isHeightened = $isHeightened;
}
/**
* @ORM\Column(name="is_direct_forwarded", type="boolean", nullable=false)
*/
protected bool $isDirectForwarded;
public function isDirectForwarded(): bool
{
return $this->isDirectForwarded;
}
public function setIsDirectForwarded(bool $isDirectForwarded): void
{
$this->isDirectForwarded = $isDirectForwarded;
}
/**
* @ORM\Column(name="is_direct_forwarded_ebay", type="boolean", nullable=false)
*/
protected bool $isDirectForwardedEbay;
public function isDirectForwardedEbay(): bool
{
return $this->isDirectForwardedEbay;
}
public function setIsDirectForwardedEbay(bool $isDirectForwardedEbay): void
{
$this->isDirectForwardedEbay = $isDirectForwardedEbay;
}
/**
* @ORM\Column(name="is_anonymous_forwarded", type="boolean", nullable=false)
*/
protected bool $isAnonymousForwarded;
public function isAnonymousForwarded(): bool
{
return $this->isAnonymousForwarded;
}
public function setIsAnonymousForwarded(bool $isAnonymousForwarded): void
{
$this->isAnonymousForwarded = $isAnonymousForwarded;
}
/**
* @ORM\Column(name="is_customer_premium_radar_activated", type="boolean", nullable=false)
*/
protected bool $isCustomerPremiumRadarActivated;
public function isCustomerPremiumRadarActivated(): bool
{
return $this->isCustomerPremiumRadarActivated;
}
/** @see IntegratedExternalPartnerCustomerService::safelyTurnOnPremiumRadar() - consider using this function to turn on premium radar */
public function setIsCustomerPremiumRadarActivated(bool $isCustomerPremiumRadarActivated): void
{
$this->isCustomerPremiumRadarActivated = $isCustomerPremiumRadarActivated;
}
/**
* @ORM\Column(name="premium_radar_conversation_message_subject", type="text", length=255)
*/
private string $premiumRadarConversationMessageSubject;
public function getPremiumRadarConversationMessageSubject(): string
{
return $this->premiumRadarConversationMessageSubject;
}
public function setPremiumRadarConversationMessageSubject(string $premiumRadarConversationMessageSubject): void
{
$this->premiumRadarConversationMessageSubject = $premiumRadarConversationMessageSubject;
}
/**
* @ORM\Column(name="premium_radar_conversation_message_body", type="text", length=8192)
*/
private string $premiumRadarConversationMessageBody;
public function getPremiumRadarConversationMessageBody(): string
{
return $this->premiumRadarConversationMessageBody;
}
public function setPremiumRadarConversationMessageBody(string $premiumRadarConversationMessageBody): void
{
$this->premiumRadarConversationMessageBody = $premiumRadarConversationMessageBody;
}
/**
* @ORM\Column(name="general_feed_category", type="text", length=16, nullable="true")
*/
private ?string $generalFeedCategory;
public function getGeneralFeedCategory(): ?string
{
return $this->generalFeedCategory;
}
public function setGeneralFeedCategory(?string $generalFeedCategory): void
{
$this->generalFeedCategory = $generalFeedCategory;
}
/**
* @var ProfileBlock|Collection
*
* @ORM\OneToMany(targetEntity="\App\Entity\ProfileBlock", mappedBy="integratedExternalPartnerCustomer", cascade={"persist", "remove"})
*/
protected $profileBlocks;
public function addProfileBlock(ProfileBlock $profileBlock): void
{
$this->profileBlocks[] = $profileBlock;
}
public function getProfileBlocks()
{
return $this->profileBlocks;
}
public function isBlockedBy(Profile $profile): bool
{
/** @var ProfileBlock $profileBlock */
foreach ($this->profileBlocks as $profileBlock) {
if ($profileBlock->isBlocker($profile)) {
return true;
}
}
return false;
}
/**
* @ORM\Column(name="addresses_jobseekers_formally", type="boolean", nullable=false)
*/
protected bool $addressesJobseekersFormally;
public function addressesJobseekersFormally(): bool
{
return $this->addressesJobseekersFormally;
}
public function setAddressesJobseekersFormally(bool $addressesJobseekersFormally): void
{
$this->addressesJobseekersFormally = $addressesJobseekersFormally;
}
/**
* @ORM\Column(name="uses_formal_headline", type="boolean", nullable=false)
*/
protected bool $usesFormalHeadline;
public function usesFormalHeadline(): bool
{
return $this->usesFormalHeadline;
}
public function setUsesFormalHeadline(bool $usesFormalHeadline): void
{
$this->usesFormalHeadline = $usesFormalHeadline;
}
/**
* @ORM\Column(name="is_visible_in_feeds_management_portal", type="boolean", nullable=false)
*/
protected bool $isVisibleInFeedsManagementPortal;
public function isVisibleInFeedsManagementPortal(): bool
{
return $this->isVisibleInFeedsManagementPortal;
}
public function setIsVisibleInFeedsManagementPortal(bool $isVisibleInFeedsManagementPortal): void
{
$this->isVisibleInFeedsManagementPortal = $isVisibleInFeedsManagementPortal;
}
/**
* @ORM\Column(name="is_timetable_visible", type="boolean", nullable=false)
*/
protected bool $isTimetableVisible;
public function isTimetableVisible(): bool
{
return $this->isTimetableVisible;
}
public function setIsTimetableVisible(bool $isTimetableVisible): void
{
$this->isTimetableVisible = $isTimetableVisible;
}
/**
* @ORM\Column(name="is_update_active", type="boolean", nullable=false)
*/
protected bool $isUpdateActive;
public function isUpdateActive(): bool
{
return $this->isUpdateActive;
}
public function setIsUpdateActive(bool $isUpdateACtive): void
{
$this->isUpdateActive = $isUpdateACtive;
}
/**
* @var IntegratedExternalPartnerCustomerContentDistributionValue[]|Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\ContentDistribution\IntegratedExternalPartnerCustomerContentDistributionValue", mappedBy="integratedExternalPartnerCustomer", cascade={"persist", "remove"})
*/
protected Collection $contentDistributionValues;
/**
* @return IntegratedExternalPartnerCustomerContentDistributionValue[]|Collection
*/
public function getContentDistributionValues(): Collection
{
return $this->contentDistributionValues;
}
/** @throws Exception */
public function setContentDistributionStringValue(string $name, ?string $stringValue): void
{
/** @var IntegratedExternalPartnerCustomerContentDistributionValue $contentDistributionValue */
foreach ($this->contentDistributionValues as $contentDistributionValue) {
if ($contentDistributionValue->getName() === $name) {
$contentDistributionValue->setStringValue($stringValue);
return;
}
}
if (!is_null($stringValue)) {
$this->contentDistributionValues->add(
IntegratedExternalPartnerCustomerContentDistributionValue::createWithStringValue($this, $name, $stringValue)
);
}
}
/** @throws Exception */
public function setContentDistributionFloatValue(string $name, ?float $floatValue): void
{
/** @var IntegratedExternalPartnerCustomerContentDistributionValue $contentDistributionValue */
foreach ($this->contentDistributionValues as $contentDistributionValue) {
if ($contentDistributionValue->getName() === $name) {
$contentDistributionValue->setFloatValue($floatValue);
return;
}
}
if (!is_null($floatValue)) {
$this->contentDistributionValues->add(
IntegratedExternalPartnerCustomerContentDistributionValue::createWithFloatValue($this, $name, $floatValue)
);
}
}
/** @throws Exception */
public function setContentDistributionBoolValue(string $name, ?bool $boolValue): void
{
/** @var IntegratedExternalPartnerCustomerContentDistributionValue $contentDistributionValue */
foreach ($this->contentDistributionValues as $contentDistributionValue) {
if ($contentDistributionValue->getName() === $name) {
$contentDistributionValue->setBoolValue($boolValue);
return;
}
}
if (!is_null($boolValue)) {
$this->contentDistributionValues->add(
IntegratedExternalPartnerCustomerContentDistributionValue::createWithBoolValue($this, $name, $boolValue)
);
}
}
/**
* @ORM\Column(name="cv_for_extended_applications_mandatory", type="boolean", nullable=false)
*/
protected bool $cvForExtendedApplicationsMandatory;
public function cvForExtendedApplicationsMandatory(): bool
{
return $this->cvForExtendedApplicationsMandatory;
}
public function setCvForExtendedApplicationsMandatory(bool $cvForExtendedApplicationsMandatory): void
{
$this->cvForExtendedApplicationsMandatory = $cvForExtendedApplicationsMandatory;
}
/**
* @ORM\Column(name="recurrent_jobs_limit", type="integer", nullable=true)
*/
private ?int $recurrentJobsLimit;
public function getRecurrentJobsLimit(): ?int
{
return $this->recurrentJobsLimit;
}
public function setRecurrentJobsLimit(?int $recurrentJobsLimit): void
{
$this->recurrentJobsLimit = $recurrentJobsLimit;
}
/**
* @ORM\Column(name="contact_name", type="text", length=256, nullable=true)
*/
private ?string $contactName;
public function getContactName(): ?string
{
return $this->contactName;
}
public function setContactName(?string $contactName): void
{
$this->contactName = $contactName;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\ContentDistribution\AgenturFuerArbeit\DestatisEconomicSector", cascade={"persist"})
*
* @ORM\JoinColumn(name="destatis_economic_sectors_running_number", referencedColumnName="running_number", nullable=true, onDelete="SET NULL")
*/
protected ?DestatisEconomicSector $destatisEconomicSector = null;
public function getDestatisEconomicSector(): ?DestatisEconomicSector
{
return $this->destatisEconomicSector;
}
public function setDestatisEconomicSector(?DestatisEconomicSector $destatisEconomicSector): void
{
$this->destatisEconomicSector = $destatisEconomicSector;
}
/**
* @ORM\Column(name="destatis_economic_sector_decision", type="smallint", nullable=true, options={"unsigned": true})
*/
protected ?int $destatisEconomicSectorDecision;
public function setDestatisEconomicSectorDecision(?int $destatisEconomicSectorDecision): void
{
if (!is_null($destatisEconomicSectorDecision)) {
if (!ReflectionHelper::hasConstWithValue(
DestatisEconomicSectorService::class,
'SECTOR_DECISION_',
$destatisEconomicSectorDecision)
) {
throw new InvalidArgumentException("Value '$destatisEconomicSectorDecision' not allowed for destatisEconomicSectorDecision.");
}
}
$this->destatisEconomicSectorDecision = $destatisEconomicSectorDecision;
}
public function getDestatisEconomicSectorDecision(): ?int
{
return $this->destatisEconomicSectorDecision;
}
public function getDestatisEconomicSectorOrigin(): ?int
{
if (!is_null($this->destatisEconomicSector)) {
return DestatisEconomicSectorService::SECTOR_ORIGIN_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER;
}
return null;
}
/**
* @ORM\Column(name="has_click_based_billing", type="boolean", nullable=false)
*/
protected bool $hasClickBasedBilling;
public function hasClickBasedBilling(): bool
{
return $this->hasClickBasedBilling;
}
public function setHasClickBasedBilling(bool $hasClickBasedBilling): void
{
$this->hasClickBasedBilling = $hasClickBasedBilling;
}
/**
* @ORM\Column(name="premium_radar_limit", type="integer", nullable=true)
*/
private ?int $premiumRadarLimit;
public function getPremiumRadarLimit(): ?int
{
return $this->premiumRadarLimit;
}
public function setPremiumRadarLimit(?int $premiumRadarLimit): void
{
$this->premiumRadarLimit = $premiumRadarLimit;
}
/**
* @ORM\Column(name="premium_radar_whatsapp_limit", type="integer", nullable=true)
*/
private ?int $premiumRadarWhatsappLimit;
public function getPremiumRadarWhatsappLimit(): ?int
{
return $this->premiumRadarWhatsappLimit;
}
public function setPremiumRadarWhatsappLimit(?int $premiumRadarWhatsappLimit): void
{
$this->premiumRadarWhatsappLimit = $premiumRadarWhatsappLimit;
}
/**
* @ORM\Column(name="premium_radar_email_limit", type="integer", nullable=true)
*/
private ?int $premiumRadarEmailLimit;
public function getPremiumRadarEmailLimit(): ?int
{
return $this->premiumRadarEmailLimit;
}
public function setPremiumRadarEmailLimit(?int $premiumRadarEmailLimit): void
{
$this->premiumRadarEmailLimit = $premiumRadarEmailLimit;
}
/**
* @var array|string[]
*
* @ORM\Column(name="premium_radar_additional_searchterms", type="array", nullable=false)
*/
private array $premiumRadarAdditionalSearchterms;
public function setPremiumRadarAdditionalSearchterms(array $premiumRadarAdditionalSearchterms): void
{
$this->premiumRadarAdditionalSearchterms = $premiumRadarAdditionalSearchterms;
}
public function addPremiumRadarAdditionalSearchterm(string $premiumRadarAdditionalSearchterm): void
{
if (trim($premiumRadarAdditionalSearchterm) !== '' && !in_array(trim($premiumRadarAdditionalSearchterm), $this->premiumRadarAdditionalSearchterms)) {
$this->premiumRadarAdditionalSearchterms[] = trim($premiumRadarAdditionalSearchterm);
}
}
public function removePremiumRadarAdditionalSearchterm(string $premiumRadarAdditionalSearchterm): void
{
if (in_array(trim($premiumRadarAdditionalSearchterm), $this->premiumRadarAdditionalSearchterms)) {
array_splice($this->premiumRadarAdditionalSearchterms, array_search(trim($premiumRadarAdditionalSearchterm), $this->premiumRadarAdditionalSearchterms), 1);
}
}
public function getPremiumRadarAdditionalSearchterms(): array
{
return $this->premiumRadarAdditionalSearchterms;
}
/**
* @ORM\Column(name="superchat_attachment_id", type="text", length=128, nullable="true")
*/
private ?string $superchatAttachmentId;
public function getSuperchatAttachmentId(): ?string
{
return $this->superchatAttachmentId;
}
public function setSuperchatAttachmentId(?string $superchatAttachmentId): void
{
$this->superchatAttachmentId = $superchatAttachmentId;
}
/**
* @ORM\Column(name="monthly_click_budget_reached", type="boolean", nullable=false)
*/
protected bool $monthlyClickBudgetReached;
public function isMonthlyClickBudgetReached(): bool
{
return $this->monthlyClickBudgetReached;
}
public function setMonthlyClickBudgetReached(bool $monthlyClickBudgetReached): void
{
$this->monthlyClickBudgetReached = $monthlyClickBudgetReached;
}
/**
* @ORM\Column(name="daily_crawler_update", type="boolean", nullable=false)
*/
protected bool $dailyCrawlerUpdate;
public function getDailyCrawlerUpdate(): bool
{
return $this->dailyCrawlerUpdate;
}
public function setDailyCrawlerUpdate(bool $dailyCrawlerUpdate): void
{
$this->dailyCrawlerUpdate = $dailyCrawlerUpdate;
}
/**
* @ORM\Column(name="click_budget", type="array", nullable=false)
*/
protected array $clickBudget;
public function getClickBudget(): array
{
return $this->clickBudget;
}
public function setClickBudget(array $clickBudget): void
{
$clickBudgetArray = [];
foreach ($clickBudget as $key => $value) {
if (!in_array($key, range(1, 12))) {
throw new InvalidArgumentException("Key '$key' not allowed for click budget.");
}
if (!is_numeric(trim($value))) {
throw new InvalidArgumentException("Value '$value' not allowed for click budget.");
}
$clickBudgetArray[$key] = (int)trim($value);
}
$this->clickBudget = $clickBudgetArray;
}
/**
* @ORM\Column(name="working_times_hidden", type="boolean", nullable=false)
*/
protected bool $workingTimesHidden;
public function getWorkingTimesHidden(): bool
{
return $this->workingTimesHidden;
}
public function setWorkingTimesHidden(bool $workingTimesHidden): void
{
$this->workingTimesHidden = $workingTimesHidden;
}
/**
* @ORM\Column(name="acquisition_method", type="integer", enumType=AcquisitionMethod::class, nullable=false)
*/
protected AcquisitionMethod $acquisitionMethod;
public function getAcquisitionMethod(): AcquisitionMethod
{
return $this->acquisitionMethod;
}
public function setAcquisitionMethod(AcquisitionMethod $acquisitionMethod): void
{
$this->acquisitionMethod = $acquisitionMethod;
}
/**
* @ORM\Column(name="billed_party", type="integer", enumType=BilledParty::class, nullable=false)
*/
protected BilledParty $billedParty;
public function getBilledParty(): BilledParty
{
return $this->billedParty;
}
public function setBilledParty(BilledParty $billedParty): void
{
$this->billedParty = $billedParty;
}
/**
* @ORM\Column(name="is_contact_data_visible", type="boolean", nullable=false)
*/
protected bool $isContactDataVisible;
public function isContactDataVisible(): bool
{
return $this->isContactDataVisible;
}
public function setIsContactDataVisible(bool $isContactDataVisible): void
{
$this->isContactDataVisible = $isContactDataVisible;
}
/**
* @ORM\Column(name="zvoove_application_api_key", type="text", length=256, nullable=true)
*/
private ?string $zvooveApplicationApiKey;
public function getZvooveApplicationApiKey(): ?string
{
return $this->zvooveApplicationApiKey;
}
public function setZvooveApplicationApiKey(?string $zvooveApplicationApiKey): void
{
$this->zvooveApplicationApiKey = $zvooveApplicationApiKey;
}
// A Customer connected to a WeclappParty is transitively connected to that party's WeclappContracts:
// Customer -> WeclappParty -> WeclappContract.
// However, we can additionally connect a Customer directly to a WeclappContract.
// The business meaning of this is that a Customer who is directly connected to a WeclappContract
// exists in our platform for only this specific contract.
/**
* @ORM\OneToMany(
* targetEntity="JanusHercules\ExtendedApplicationQuestionnaire\Domain\Entity\ExtendedApplicationCustomerQuestionTemplate",
* mappedBy="integratedExternalPartnerCustomer",
* cascade={"persist", "remove"}
* )
*/
protected Collection $extendedApplicationCustomerQuestionTemplates;
public function getExtendedApplicationCustomerQuestionTemplates(): Collection
{
return $this->extendedApplicationCustomerQuestionTemplates;
}
public function addExtendedApplicationCustomerQuestionTemplate(ExtendedApplicationCustomerQuestionTemplate $questionTemplate): void
{
$this->extendedApplicationCustomerQuestionTemplates[] = $questionTemplate;
}
}