src/JanusHercules/DatawarehouseIntegration/Domain/Entity/BusinessEvent.php line 36

Open in your IDE?
  1. <?php
  2. namespace JanusHercules\DatawarehouseIntegration\Domain\Entity;
  3. use App\Service\UsageEventService;
  4. use App\Utility\DatabaseIdGenerator;
  5. use App\Utility\DateTimeUtility;
  6. use App\Utility\GuidUtility;
  7. use App\Utility\ReflectionHelper;
  8. use DateTime;
  9. use Doctrine\DBAL\Types\Types;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Exception;
  12. use JanusHercules\DatawarehouseIntegration\Domain\Repository\BusinessEventRepository;
  13. use ReflectionClass;
  14. use ValueError;
  15. /**
  16. * This model deliberately stores its data in a strongly denormalized form in order to allow
  17. * efficient retrieval, searching, and grouping for statistical purposes, therefore avoiding
  18. * cross-references.
  19. *
  20. * IMPORTANT: Events of this type MUST NOT be used for non-statistical uses. Specifically, DO NOT use this data to make
  21. * functional application decisions ("if there are more than X events of type Y for a user, do Z").
  22. * Always treat this data as if it wasn't part of the application at all - because this might well become true in the
  23. * future, when we need to move this data into a dedicated data warehouse for large-scale statistical analytics.
  24. *
  25. * If you need to base application behaviour on past user behaviour, @see UsageEventService instead.
  26. */
  27. #[ORM\Entity(repositoryClass: BusinessEventRepository::class)]
  28. #[ORM\Table(name: 'business_events')]
  29. #[ORM\Index(columns: ['occured_at'], name: 'occured_at_idx')]
  30. #[ORM\Index(columns: ['event_type', 'occured_at'], name: 'event_type_occured_at_idx')]
  31. #[ORM\Index(columns: ['affected_user_is_jobofferer', 'occured_at', 'affected_user_registered_at', 'event_type'], name: 'jobofferer_idx')]
  32. #[ORM\Index(columns: ['affected_user_is_jobseeker', 'occured_at', 'affected_user_registered_at', 'event_type'], name: 'jobseeker_idx')]
  33. class BusinessEvent
  34. {
  35. public const EVENT_TYPE_USER_REMOVED_OWN_ACCOUNT = 0;
  36. public const EVENT_TYPE_ACCOUNT_REMOVED_BY_ADMIN = 1;
  37. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_ACTIVATION = 2;
  38. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_BASE_PROFILE = 3;
  39. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_CONVERSATION_MESSAGES = 4;
  40. public const EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED = 5;
  41. public const EVENT_TYPE_NEW_USER_ACCOUNT_CONFIRMED = 6;
  42. public const EVENT_TYPE_SENT_SINGLE_CONVERSATION_MESSAGE = 8;
  43. public const EVENT_TYPE_SENT_MULTIPLE_CONVERSATION_MESSAGES = 9;
  44. public const EVENT_TYPE_CONVERSATION_MESSAGE_WAS_REMOVED = 10;
  45. public const EVENT_TYPE_CONVERSATION_WAS_REMOVED = 11;
  46. public const EVENT_TYPE_CONVERSATION_MESSAGE_WAS_RESTORED = 12;
  47. public const EVENT_TYPE_CONVERSATION_MESSAGE_WAS_READ = 13;
  48. public const EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDALLCOOKIES = 14;
  49. public const EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYANALYTICSCOOKIES = 15;
  50. public const EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYMARKETINGCOOKIES = 16;
  51. public const EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDNOCOOKIES = 17;
  52. public const EVENT_TYPE_JOBSEEKERPROFILESSEARCH_ENOUGHRESULTS = 18;
  53. public const EVENT_TYPE_JOBSEEKERPROFILESSEARCH_NOTENOUGHRESULTS = 19;
  54. public const EVENT_TYPE_RECURRENTJOBSSEARCH_ENOUGHRESULTS = 20;
  55. public const EVENT_TYPE_RECURRENTJOBSSEARCH_NOTENOUGHRESULTS = 21;
  56. public const EVENT_TYPE_JOBOFFERER_REMOVED_OWN_ACCOUNT_nolongerused = 22;
  57. public const EVENT_TYPE_JOBSEEKER_REMOVED_OWN_ACCOUNT_nolongerused = 23;
  58. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBS = 24;
  59. public const EVENT_TYPE_BASE_PROFILE_COMPLETED = 25;
  60. public const EVENT_TYPE_EXTENDED_PROFILE_COMPLETED = 26;
  61. public const EVENT_TYPE_SUBSCRIPTION_COMPLETED = 27;
  62. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITH_TRIAL = 28;
  63. public const EVENT_TYPE_PAUSE_ACCOUNT = 29;
  64. public const EVENT_TYPE_UNPAUSE_ACCOUNT = 30;
  65. public const EVENT_TYPE_SEND_MAIL_NOTIFICATION_FOR_PAUSED = 31;
  66. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL = 32;
  67. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_ACTIVITY = 33;
  68. public const EVENT_TYPE_SENT_AUTOMATED_CONVERSATION_MESSAGE = 34;
  69. public const EVENT_TYPE_USER_SET_OWN_PASSWORD = 35;
  70. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_SET_OWN_PASSWORD = 36;
  71. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_JOBRADAR_MATCHES = 37;
  72. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_EXTENDED_PROFILE_FIELDS = 38;
  73. public const EVENT_TYPE_TRIGGERED_DIRECT_APPLICATION_FROM_CONVERSATION_MESSAGE = 39;
  74. public const EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_RECEIVED_INCOMING = 40;
  75. public const EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_SENT_OUTGOING = 41;
  76. public const EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_EXTRACT_REPLY_FROM_INCOMING = 42;
  77. public const EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_TRIGGERED_MAILBOMB_PROTECTION = 43;
  78. public const EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_CONFIRMED = 44;
  79. public const EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_WITHDRAWN = 45;
  80. public const EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_DELIVER_REPLY_FROM_UNSUBSCRIBED_JOBOFFERER = 46;
  81. public const EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_VISITED = 47;
  82. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PROFILE = 48;
  83. public const EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS = 49;
  84. public const EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS = 50;
  85. public const EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_ENOUGHRESULTS = 51;
  86. public const EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_NOTENOUGHRESULTS = 52;
  87. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL_DURING_CAMPAIGN = 53;
  88. public const EVENT_TYPE_RATED_POSITIVE = 54;
  89. public const EVENT_TYPE_RATED_NEGATIVE = 55;
  90. public const EVENT_TYPE_USED_FACEBOOK_RATING_LINK = 56;
  91. public const EVENT_TYPE_USED_GOOGLE_RATING_LINK = 57;
  92. public const EVENT_TYPE_USED_TRUSTEDSHOPS_RATING_LINK = 58;
  93. public const EVENT_TYPE_SEES_RATING_OPTION = 59;
  94. public const EVENT_TYPE_SEES_POSITIVE_RATING_OPTION = 60;
  95. public const EVENT_TYPE_SUBSCRIPTION_CANCELED = 61;
  96. public const EVENT_TYPE_DETAILED_RECURRENT_JOB_VIEW_BUTTON_IS_CLICKED = 62;
  97. public const EVENT_TYPE_RECURRENTJOB_CREATED = 63;
  98. public const EVENT_TYPE_RECURRENTJOB_EDITED = 64;
  99. public const EVENT_TYPE_PROFILE_EDITED = 65;
  100. public const EVENT_TYPE_RECURRENTJOB_CREATED_DURING_PROFILE_CREATION = 66;
  101. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBOFFERER_TIPS = 67;
  102. public const EVENT_TYPE_PROFILE_PHOTO_WAS_ADDED = 68;
  103. public const EVENT_TYPE_PROFILE_PHOTO_WAS_DELETED = 69;
  104. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBSEEKER_TIPS = 70;
  105. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_1 = 71;
  106. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_2 = 72;
  107. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_3 = 73;
  108. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBOFFERER_1 = 74;
  109. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBOFFERER_2 = 75;
  110. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBOFFERER_3 = 76;
  111. public const EVENT_TYPE_WANTEDJOBSSEARCH_ENOUGHRESULTS = 77;
  112. public const EVENT_TYPE_WANTEDJOBSSEARCH_NOTENOUGHRESULTS = 78;
  113. public const EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS = 79;
  114. public const EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS = 80;
  115. public const EVENT_TYPE_DETAILED_WANTED_JOB_VIEW_BUTTON_IS_CLICKED = 81;
  116. public const EVENT_TYPE_WANTEDJOB_CREATED = 82;
  117. public const EVENT_TYPE_WANTEDJOB_EDITED = 83;
  118. public const EVENT_TYPE_WANTEDJOB_CREATED_DURING_PROFILE_CREATION = 84;
  119. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_WANTED_JOBS = 85;
  120. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PLUS_PROFILE = 86;
  121. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_BASE_PLUS_PROFILE = 87;
  122. public const EVENT_TYPE_JOBLIFT_JOBOFFER_CONTACTED = 88;
  123. public const EVENT_TYPE_BASE_PLUS_PROFILE_COMPLETED = 89;
  124. public const EVENT_TYPE_ABOUT_ME_WAS_ADDED = 90;
  125. public const EVENT_TYPE_CV_WAS_ADDED = 91;
  126. public const EVENT_TYPE_PHONE_NUMBER_WAS_ADDED = 92;
  127. public const EVENT_TYPE_ADDITIONAL_DOCUMENT_WAS_ADDED = 93;
  128. public const EVENT_TYPE_NEW_GOHIRING_JOBOFFER_INTEGRATED = 94;
  129. public const EVENT_TYPE_GOHIRING_JOBOFFER_DELETED = 95;
  130. public const EVENT_TYPE_GOHIRING_JOBOFFER_UPDATED = 96;
  131. public const EVENT_TYPE_RECURRENT_JOB_SEARCH_CONTAINS_JOBLIFT_RESULTS = 97;
  132. public const EVENT_TYPE_RECURRENT_JOB_SEARCH_DOES_NOT_CONTAIN_JOBLIFT_RESULTS = 98;
  133. public const EVENT_TYPE_LINK_FROM_EBAY_AWAY_MESSAGE_CLICKED = 99;
  134. public const EVENT_TYPE_MISSING_ACTIVATION_EMAIL_FROM_WEBDE_SENT = 100;
  135. public const EVENT_TYPE_POPULAR_JOBS_BUTTON_CLICKED = 101;
  136. public const EVENT_TYPE_SUGGESTED_POPULAR_JOB_CHOSEN = 102;
  137. public const EVENT_TYPE_JOBRAPIDO_LINK_CLICKED = 103;
  138. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_ACTIVITY = 104;
  139. public const EVENT_TYPE_CV_WAS_VIEWED_IN_PROFILE = 105;
  140. public const EVENT_TYPE_CV_WAS_VIEWED_IN_SEARCH = 106;
  141. public const EVENT_TYPE_TALENTCOM_LINK_CLICKED = 107;
  142. public const EVENT_TYPE_CV_WAS_VIEWED_IN_UNREAD_MESSAGES = 108;
  143. public const EVENT_TYPE_JOBSEEKER_CLICKED_SHARE_PROFILE_ICON = 109;
  144. public const EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED = 110;
  145. public const EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED_FROM_PREMIUM_JOB = 111;
  146. public const EVENT_TYPE_JOBLIFT_LINK_CLICKED = 112;
  147. public const EVENT_TYPE_INDEED_RECRUIT_DL_LANDINGPAGE_SHOWN = 113;
  148. public const EVENT_TYPE_INDEED_RECRUIT_DL_FORM_COMPLETED = 114;
  149. public const EVENT_TYPE_GOHIRING_INCOMING_NEW_FAILED_nolongerused = 115;
  150. public const EVENT_TYPE_GOHIRING_INCOMING_UPDATE_FAILED_nolongerused = 116;
  151. public const EVENT_TYPE_GOHIRING_INCOMING_DELETE_FAILED_nolongerused = 117;
  152. public const EVENT_TYPE_JOBSEEKER_HAS_CLICKED_DOWNLOAD_DOCUMENT_TEMPLATE = 118;
  153. public const EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY = 119;
  154. public const EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY_OF_RECRUIT_DL_SENDER = 120;
  155. public const EVENT_TYPE_JOBOFFERER_CLICKED_MENU_LINK_RECURRENT_JOB = 121;
  156. public const EVENT_TYPE_JOBSEEKER_CLICKED_MENU_LINK_WANTED_JOB = 122;
  157. public const EVENT_TYPE_EBAY_LINK_CLICKED = 123;
  158. public const EVENT_TYPE_APP_STORE_ICON_CLICKED = 124;
  159. public const EVENT_TYPE_PLAY_STORE_ICON_CLICKED = 125;
  160. public const EVENT_TYPE_SELFDESCRIPTION_PROPOSAL_CHANGED = 126;
  161. public const EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_CREATED = 127;
  162. public const EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_CREATED = 128;
  163. public const EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_EDITED = 129;
  164. public const EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_DEACTIVATED = 130;
  165. public const EVENT_TYPE_GERMAN_PERSONNEL_NEW_RECURRENT_JOB_CREATED = 131;
  166. public const EVENT_TYPE_GERMAN_PERSONNEL_RECURRENT_JOB_REMOVED = 132;
  167. public const EVENT_TYPE_IMMEDIATE_APPLICATION_FORM_COMPLETED = 133;
  168. public const EVENT_TYPE_NEW_USER_VIA_IMMEDIATE_APPLICATION = 134;
  169. public const EVENT_TYPE_REWE_NEW_RECURRENT_JOB_CREATED = 135;
  170. public const EVENT_TYPE_REWE_RECURRENT_JOB_REMOVED = 136;
  171. public const EVENT_TYPE_RECURRENT_JOBS_SEARCH_INFO_BUBBLE_CLICKED = 137;
  172. public const EVENT_TYPE_NEW_BILLING_FOR_EXTERNAL_RECURRENT_JOB = 138;
  173. public const EVENT_TYPE_EXTERNAL_RECURRENT_JOB_REMOVED_BECAUSE_NO_QUOTA = 139;
  174. public const EVENT_TYPE_EXTENDED_PLUS_PROFILE_COMPLETED = 140;
  175. public const EVENT_TYPE_DASHBOARD_ACTION = 141;
  176. public const EVENT_TYPE_HAYS_NEW_RECURRENT_JOB_CREATED = 142;
  177. public const EVENT_TYPE_HAYS_RECURRENT_JOB_REMOVED = 143;
  178. public const EVENT_TYPE_RECURRENTJOB_FORWARDED_TO_EXTERNAL_APPLICATION_URL = 144;
  179. public const EVENT_TYPE_EBAY_FEED_TRACKING = 145;
  180. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_4 = 146;
  181. public const EVENT_TYPE_USED_QUOTA_VALUE_RAISED = 147;
  182. public const EVENT_TYPE_MYSTAFFPILOT_NEW_RECURRENT_JOB_CREATED = 148;
  183. public const EVENT_TYPE_MYSTAFFPILOT_RECURRENT_JOB_REMOVED = 149;
  184. public const EVENT_TYPE_JOBWARE_LINK_CLICKED = 150;
  185. public const EVENT_TYPE_FORWARDING_TO_EXTERNAL_COOPERATION_PARTNER_INITIATED = 151;
  186. public const EVENT_TYPE_FORWARDED_TO_EXTERNAL_COOPERATION_PARTNER = 152;
  187. public const EVENT_TYPE_INCOMING_CLICK_FROM_EXTERNAL_COOPERATION_PARTNER = 153;
  188. public const EVENT_TYPE_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_LINK_CLICKED = 154;
  189. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBLIFT_C_FEED = 155;
  190. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBLIFT_C_FEED = 156;
  191. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBRAPIDO_C_FEED = 157;
  192. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBRAPIDO_C_FEED = 158;
  193. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_TALENTCOM_C_FEED = 159;
  194. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_TALENTCOM_C_FEED = 160;
  195. public const EVENT_TYPE_SOFTGARDEN_RECURRENT_JOB_REMOVED = 161;
  196. public const EVENT_TYPE_GOOGLE_INDEXING_API_INDEX_WAS_REQUESTED = 162;
  197. public const EVENT_TYPE_GOOGLE_INDEXING_API_DELETE_WAS_REQUESTED = 163;
  198. public const EVENT_TYPE_RECURRENT_JOB_DEACTIVATED = 164;
  199. public const EVENT_TYPE_LENKZEIT_NEW_RECURRENT_JOB_CREATED = 165;
  200. public const EVENT_TYPE_LENKZEIT_RECURRENT_JOB_REMOVED = 166;
  201. public const EVENT_TYPE_RECURRENT_JOB_REACTIVATED = 167;
  202. public const EVENT_TYPE_FEEDBACK_ABOUT_RECURRENT_JOB_DEACTIVATION = 168;
  203. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_KIMETA_C_FEED = 169;
  204. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_KIMETA_C_FEED = 170;
  205. public const EVENT_TYPE_PMS_ARE_INFORMED_ABOUT_EXPIRING_QUOTA = 171;
  206. public const EVENT_TYPE_RECURRENT_JOB_PRINT_BUTTON_HAS_BEEN_CLICKED = 172;
  207. public const EVENT_TYPE_GOOGLE_FOR_JOBS_LINK_CLICKED = 173;
  208. public const EVENT_TYPE_EXTENDED_APPLICATION_FORM_COMPLETED = 174;
  209. public const EVENT_TYPE_NEW_USER_VIA_EXTENDED_APPLICATION = 175;
  210. public const EVENT_TYPE_KIMETA_LINK_CLICKED = 176;
  211. public const EVENT_TYPE_ARTEMIS_RECURRENT_JOB_REMOVED = 177;
  212. public const EVENT_TYPE_AGENTUR_FUER_ARBEIT_LINK_CLICKED = 178;
  213. public const EVENT_TYPE_JOBOO_ONLINE_LANDINGPAGE_SHOWN = 179;
  214. public const EVENT_TYPE_JOBOO_ONLINE_FORM_COMPLETED = 180;
  215. public const EVENT_TYPE_USER_CLICKED_ON_RECURRENT_JOB_ON_INDEED_SITE = 181;
  216. public const EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_OAUTH2 = 182;
  217. public const EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_GSI = 183;
  218. public const EVENT_TYPE_FORWARDED_TO_ORGANIC_RECURRENT_JOB_EXTERNAL_APPLICATION_URL = 184;
  219. public const EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_ACTIVATED = 185;
  220. public const EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_DEACTIVATED = 186;
  221. public const EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_BOOKED = 187;
  222. public const EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED = 188;
  223. public const EVENT_TYPE_RECURRENT_JOB_REMOVAL_REQUESTED = 189;
  224. public const EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDSELECTEDCOOKIES = 190;
  225. public const EVENT_TYPE_FLASCHENPOST_RECURRENT_JOB_REMOVED = 191;
  226. public const EVENT_TYPE_UNSUBSCRIBED_RECURRENT_JOB_WAS_ADDED_TO_INDEED_FEED_FOR_TEST = 192;
  227. public const EVENT_TYPE_BLACKLISTING_WAS_ADDED = 193;
  228. public const EVENT_TYPE_BLACKLISTING_WAS_REMOVED = 194;
  229. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_STELLENONLINE_C_FEED = 195;
  230. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_STELLENONLINE_C_FEED = 196;
  231. public const EVENT_TYPE_WISAG_ISSUE = 197;
  232. public const EVENT_TYPE_STELLENONLINE_LINK_CLICKED = 198;
  233. public const EVENT_TYPE_RECRUIT_USER_WAS_CONVERTED_TO_JOBOO_USER_WITHOUT_DATA_IMPORT = 199;
  234. public const EVENT_TYPE_RECRUIT_USER_CONVERTED_TO_JOBOO_USER_WITH_DATA_IMPORT = 200;
  235. public const EVENT_TYPE_RECRUIT_DL_CONFIRMATION_LINK_WAS_CLICKED = 201;
  236. public const EVENT_TYPE_RECURRENT_JOB_WAS_SHARED = 202;
  237. public const EVENT_TYPE_SIMILAR_JOB_OFFER_CLICKED = 203;
  238. public const EVENT_TYPE_HOFMANNS_CATERING_RECURRENT_JOB_REMOVED = 204;
  239. public const EVENT_TYPE_DEUTSCHE_BAHN_AG_RECURRENT_JOB_REMOVED = 205;
  240. public const EVENT_TYPE_MILCH_UND_ZUCKER_RECURRENT_JOB_REMOVED = 206;
  241. public const EVENT_TYPE_RECURRENT_JOB_WAS_ADDED_FOR_AGENTUR_FUER_ARBEIT = 207;
  242. public const EVENT_TYPE_RECURRENT_JOB_WAS_DELETED_FOR_AGENTUR_FUER_ARBEIT = 208;
  243. public const EVENT_TYPE_RECURRENT_JOB_WAS_ADDED_FOR_AGENTUR_FUER_ARBEIT_CATEGORIZATION = 209;
  244. public const EVENT_TYPE_RECURRENT_JOB_WAS_CATEGORIZED_FOR_AGENTUR_FUER_ARBEIT = 210;
  245. public const EVENT_TYPE_RECURRENT_JOB_WAS_PERMANENTLY_REMOVED_FOR_AGENTUR_FUER_ARBEIT = 211;
  246. public const EVENT_TYPE_LOG_IN_VIA_GOOGLE_BUTTON_WAS_PRESSED = 212;
  247. public const EVENT_TYPE_USER_HAS_VISITED_EXTERNAL_JOBOFFER = 213;
  248. public const EVENT_TYPE_CONCLUDIS_API_INFORMED_ABOUT_EXTENDED_APPLICATION = 214;
  249. public const EVENT_TYPE_WHATSAPP_LANDINGPAGE_VISITED = 215;
  250. public const EVENT_TYPE_RECURRENT_JOB_PUBLISHED = 216;
  251. public const EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_ORGANIC_CONVERSATION_MESSAGE_VIA_WHATSAPP = 217;
  252. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_AGENTUR_FUER_ARBEIT = 218;
  253. public const EVENT_TYPE_LOGIN_MAIL_SENT = 219;
  254. public const EVENT_TYPE_KAUFLAND_FEED_RECURRENT_JOB_REMOVED = 220;
  255. public const EVENT_TYPE_WHATSAPP_PERMISSION_GRANTED = 221;
  256. public const EVENT_TYPE_WHATSAPP_PERMISSION_REMOVED = 222;
  257. public const EVENT_TYPE_CELLIT_RECURRENT_JOB_REMOVED = 223;
  258. public const EVENT_TYPE_RECURRENT_JOBS_SEARCH_ALL_JOBS_NOT_ENOUGH_RESULTS = 224;
  259. public const EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_MESSAGE_VIA_WHATSAPP = 225;
  260. public const EVENT_TYPE_USER_STARTED_APPLICATION_PROCESS = 226;
  261. public const EVENT_TYPE_USER_STARTED_PHONE_CALL = 227;
  262. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_MEINESTADT_C_FEED = 228;
  263. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_MEINESTADT_C_FEED = 229;
  264. public const EVENT_TYPE_MEINESTADT_LINK_CLICKED = 230;
  265. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBIJOBA_C_FEED = 231;
  266. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBIJOBA_C_FEED = 232;
  267. public const EVENT_TYPE_JOBIJOBA_LINK_CLICKED = 233;
  268. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_WHATJOBS_C_FEED = 234;
  269. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_WHATJOBS_C_FEED = 235;
  270. public const EVENT_TYPE_WHATJOBS_LINK_CLICKED = 236;
  271. public const EVENT_TYPE_ADECCO_FEED_RECURRENT_JOB_REMOVED = 237;
  272. public const EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED_NONCONSECUTIVELY = 238;
  273. public const EVENT_TYPE_BILLWERK_CONTRACT_ANNULLED = 239;
  274. public const EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOOBLE_C_FEED = 240;
  275. public const EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOOBLE_C_FEED = 241;
  276. public const EVENT_TYPE_JOOBLE_LINK_CLICKED = 242;
  277. public const EVENT_TYPE_LINKED_LINK_CLICKED = 243;
  278. public const EVENT_TYPE_USER_SEES_CAPTCHA_PAGE_BEFORE_FORWARDING = 244;
  279. public const EVENT_TYPE_TODO_ITEM_CREATED = 245;
  280. public const EVENT_TYPE_TODO_ITEM_MARKED_AS_DONE = 246;
  281. public const EVENT_TYPE_NEW_USER_EMAIL_ADDRESS_CONFIRMED = 247;
  282. public const EVENT_TYPE_INVOICE_EMAIL_EDITED = 248;
  283. public const EVENT_TYPE_SPARSE_RESULTS_AFTER_SEARCH = 249;
  284. public const EVENT_TYPE_CLEARING_REQUEST_CREATED = 250;
  285. public const EVENT_TYPE_CLEARING_REQUEST_APPROVED = 251;
  286. public const EVENT_TYPE_CLEARING_REQUEST_REMOVED = 252;
  287. public const EVENT_TYPE_JOBSEEKER_MEMBERSHIP_SUCCESSFULLY_CREATED = 253;
  288. public const EVENT_TYPE_JOBSEEKER_MEMBERSHIP_CTA_TO_PAYMENT_FORM_WAS_CLICKED = 254;
  289. public const EVENT_TYPE_DIRECT_FORWARD_TO_GOOGLE_RATING_PAGE = 255;
  290. public const EVENT_TYPE_POTENTIAL_CUSTOMER_BUSINESS_INFO_CREATED = 256;
  291. public const EVENT_TYPE_DIRECT_FORWARD_TO_TRUSTPILOT_RATING_PAGE = 257;
  292. public const EVENT_TYPE_JOBRADAR_MATCH_PINNED = 258;
  293. public const EVENT_TYPE_JOBRADAR_MATCH_UNPINNED = 259;
  294. public const EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_INTERESTED = 260;
  295. public const EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_DECLINED = 261;
  296. public const EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_BLOCKED = 262;
  297. public const EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_UNBLOCKED = 263;
  298. public const EVENT_TYPE_USER_HAS_CLICKED_RECURRENT_JOB_WEBSITE = 264;
  299. public const EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_RECURRENT_JOB_OVERVIEW = 265;
  300. public const EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_FIXED_BOTTOM_ALERT = 266;
  301. public const EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_TRIAL_ACTIVATION = 267;
  302. public const EVENT_TYPE_DIRECT_FORWARD_TO_JOBBOERSENCHECK_RATING_PAGE = 268;
  303. public const EVENT_TYPE_TERMS_AND_CONDITIONS_HAS_BEEN_ACCEPTED = 269;
  304. public const EVENT_TYPE_NEW_EXTERNALLY_INCOMING_APPLICATION_ACCEPTED = 270;
  305. public const EVENT_TYPE_NEW_WECLAPP_CONTRACT_INTEGRATED = 271;
  306. public const EVENT_TYPE_WECLAPP_CONTRACT_EDITED = 272;
  307. public const EVENT_TYPE_WECLAPP_CONTRACT_REMOVED = 273;
  308. public const EVENT_TYPE_DIRECT_FORWARD_TO_FACEBOOK_RATING_PAGE = 274;
  309. public const EVENT_TYPE_RECURRENT_JOB_DUPLICATED_BY_ADMIN = 275;
  310. public const EVENT_TYPE_CONTRACT_CANCELLATION_FEEDBACK_SUBMITTED = 276;
  311. public const EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REQUESTED = 277;
  312. public const EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REMOVED = 278;
  313. public const EVENT_TYPE_STEPSTONE_FEED_RECURRENT_JOB_REMOVED = 279;
  314. public const EVENT_TYPE_COUPON_CODE_APPLY = 280;
  315. public const EVENT_TYPE_APETITO_FEED_RECURRENT_JOB_REMOVED = 281;
  316. public const EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_CLICKED = 282;
  317. public const EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_PRICE_CLICKED = 283;
  318. public const EVENT_TYPE_JOBOFFERER_LINK_TO_CONTENTJOBOODE_CLICKED = 284;
  319. public const EVENT_TYPE_VONQ_FEED_RECURRENT_JOB_REMOVED = 285;
  320. public const EVENT_TYPE_JOBOFFERER_ONBOARDING_FINISHED = 286;
  321. public const EVENT_TYPE_WEBFLOW_PAGE_REQUEST_WITH_GOOGLE_ADS_DATA = 287;
  322. public const EVENT_TYPE_XING_FEED_RECURRENT_JOB_REMOVED = 288;
  323. public const array ORDERED_EVENT_TYPES = [
  324. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED,
  325. self::EVENT_TYPE_NEW_USER_ACCOUNT_CONFIRMED,
  326. self::EVENT_TYPE_BASE_PROFILE_COMPLETED,
  327. self::EVENT_TYPE_EXTENDED_PLUS_PROFILE_COMPLETED,
  328. self::EVENT_TYPE_SUBSCRIPTION_COMPLETED,
  329. self::EVENT_TYPE_USER_REMOVED_OWN_ACCOUNT,
  330. self::EVENT_TYPE_ACCOUNT_REMOVED_BY_ADMIN,
  331. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_RECEIVED_INCOMING,
  332. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_SENT_OUTGOING,
  333. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_EXTRACT_REPLY_FROM_INCOMING,
  334. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_TRIGGERED_MAILBOMB_PROTECTION,
  335. self::EVENT_TYPE_SENT_SINGLE_CONVERSATION_MESSAGE,
  336. self::EVENT_TYPE_SENT_MULTIPLE_CONVERSATION_MESSAGES,
  337. self::EVENT_TYPE_SENT_AUTOMATED_CONVERSATION_MESSAGE,
  338. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_READ,
  339. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_REMOVED,
  340. self::EVENT_TYPE_CONVERSATION_WAS_REMOVED,
  341. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_RESTORED,
  342. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_ACTIVATION,
  343. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_SET_OWN_PASSWORD,
  344. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_BASE_PROFILE,
  345. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_EXTENDED_PROFILE_FIELDS,
  346. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBS,
  347. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITH_TRIAL,
  348. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL,
  349. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_CONVERSATION_MESSAGES,
  350. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_JOBRADAR_MATCHES,
  351. self::EVENT_TYPE_SEND_MAIL_NOTIFICATION_FOR_PAUSED,
  352. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_ACTIVITY,
  353. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PROFILE,
  354. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PLUS_PROFILE,
  355. self::EVENT_TYPE_RECURRENTJOBSSEARCH_ENOUGHRESULTS,
  356. self::EVENT_TYPE_RECURRENTJOBSSEARCH_NOTENOUGHRESULTS,
  357. self::EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  358. self::EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  359. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_ENOUGHRESULTS,
  360. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_NOTENOUGHRESULTS,
  361. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  362. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  363. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDALLCOOKIES,
  364. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYANALYTICSCOOKIES,
  365. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYMARKETINGCOOKIES,
  366. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDNOCOOKIES,
  367. self::EVENT_TYPE_USER_SET_OWN_PASSWORD,
  368. self::EVENT_TYPE_TRIGGERED_DIRECT_APPLICATION_FROM_CONVERSATION_MESSAGE,
  369. self::EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_CONFIRMED,
  370. self::EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_WITHDRAWN,
  371. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_DELIVER_REPLY_FROM_UNSUBSCRIBED_JOBOFFERER,
  372. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_VISITED,
  373. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL_DURING_CAMPAIGN,
  374. self::EVENT_TYPE_RATED_POSITIVE,
  375. self::EVENT_TYPE_RATED_NEGATIVE,
  376. self::EVENT_TYPE_USED_FACEBOOK_RATING_LINK,
  377. self::EVENT_TYPE_USED_GOOGLE_RATING_LINK,
  378. self::EVENT_TYPE_USED_TRUSTEDSHOPS_RATING_LINK,
  379. self::EVENT_TYPE_SEES_RATING_OPTION,
  380. self::EVENT_TYPE_SEES_POSITIVE_RATING_OPTION,
  381. self::EVENT_TYPE_SUBSCRIPTION_CANCELED,
  382. self::EVENT_TYPE_DETAILED_RECURRENT_JOB_VIEW_BUTTON_IS_CLICKED,
  383. self::EVENT_TYPE_RECURRENTJOB_CREATED,
  384. self::EVENT_TYPE_RECURRENTJOB_EDITED,
  385. self::EVENT_TYPE_PROFILE_EDITED,
  386. self::EVENT_TYPE_RECURRENTJOB_CREATED_DURING_PROFILE_CREATION,
  387. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBOFFERER_TIPS,
  388. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBSEEKER_TIPS,
  389. self::EVENT_TYPE_PROFILE_PHOTO_WAS_ADDED,
  390. self::EVENT_TYPE_PROFILE_PHOTO_WAS_DELETED,
  391. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_1,
  392. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_2,
  393. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_3,
  394. self::EVENT_TYPE_WANTEDJOBSSEARCH_ENOUGHRESULTS,
  395. self::EVENT_TYPE_WANTEDJOBSSEARCH_NOTENOUGHRESULTS,
  396. self::EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  397. self::EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  398. self::EVENT_TYPE_DETAILED_WANTED_JOB_VIEW_BUTTON_IS_CLICKED,
  399. self::EVENT_TYPE_WANTEDJOB_CREATED,
  400. self::EVENT_TYPE_WANTEDJOB_EDITED,
  401. self::EVENT_TYPE_WANTEDJOB_CREATED_DURING_PROFILE_CREATION,
  402. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_WANTED_JOBS,
  403. self::EVENT_TYPE_JOBLIFT_JOBOFFER_CONTACTED,
  404. self::EVENT_TYPE_BASE_PLUS_PROFILE_COMPLETED,
  405. self::EVENT_TYPE_ABOUT_ME_WAS_ADDED,
  406. self::EVENT_TYPE_CV_WAS_ADDED,
  407. self::EVENT_TYPE_PHONE_NUMBER_WAS_ADDED,
  408. self::EVENT_TYPE_ADDITIONAL_DOCUMENT_WAS_ADDED,
  409. self::EVENT_TYPE_NEW_GOHIRING_JOBOFFER_INTEGRATED,
  410. self::EVENT_TYPE_GOHIRING_JOBOFFER_DELETED,
  411. self::EVENT_TYPE_GOHIRING_JOBOFFER_UPDATED,
  412. self::EVENT_TYPE_RECURRENT_JOB_SEARCH_CONTAINS_JOBLIFT_RESULTS,
  413. self::EVENT_TYPE_RECURRENT_JOB_SEARCH_DOES_NOT_CONTAIN_JOBLIFT_RESULTS,
  414. self::EVENT_TYPE_LINK_FROM_EBAY_AWAY_MESSAGE_CLICKED,
  415. self::EVENT_TYPE_MISSING_ACTIVATION_EMAIL_FROM_WEBDE_SENT,
  416. self::EVENT_TYPE_POPULAR_JOBS_BUTTON_CLICKED,
  417. self::EVENT_TYPE_SUGGESTED_POPULAR_JOB_CHOSEN,
  418. self::EVENT_TYPE_JOBRAPIDO_LINK_CLICKED,
  419. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_ACTIVITY,
  420. self::EVENT_TYPE_CV_WAS_VIEWED_IN_PROFILE,
  421. self::EVENT_TYPE_CV_WAS_VIEWED_IN_SEARCH,
  422. self::EVENT_TYPE_CV_WAS_VIEWED_IN_UNREAD_MESSAGES,
  423. self::EVENT_TYPE_JOBSEEKER_CLICKED_SHARE_PROFILE_ICON,
  424. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED,
  425. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED_FROM_PREMIUM_JOB,
  426. self::EVENT_TYPE_JOBLIFT_LINK_CLICKED,
  427. self::EVENT_TYPE_INDEED_RECRUIT_DL_LANDINGPAGE_SHOWN,
  428. self::EVENT_TYPE_INDEED_RECRUIT_DL_FORM_COMPLETED,
  429. self::EVENT_TYPE_GOHIRING_INCOMING_NEW_FAILED_nolongerused,
  430. self::EVENT_TYPE_GOHIRING_INCOMING_UPDATE_FAILED_nolongerused,
  431. self::EVENT_TYPE_GOHIRING_INCOMING_DELETE_FAILED_nolongerused,
  432. self::EVENT_TYPE_JOBSEEKER_HAS_CLICKED_DOWNLOAD_DOCUMENT_TEMPLATE,
  433. self::EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY,
  434. self::EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY_OF_RECRUIT_DL_SENDER,
  435. self::EVENT_TYPE_EBAY_LINK_CLICKED,
  436. self::EVENT_TYPE_APP_STORE_ICON_CLICKED,
  437. self::EVENT_TYPE_PLAY_STORE_ICON_CLICKED,
  438. self::EVENT_TYPE_SELFDESCRIPTION_PROPOSAL_CHANGED,
  439. self::EVENT_TYPE_PLAY_STORE_ICON_CLICKED,
  440. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_CREATED,
  441. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_CREATED,
  442. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_EDITED,
  443. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_DEACTIVATED,
  444. self::EVENT_TYPE_GERMAN_PERSONNEL_NEW_RECURRENT_JOB_CREATED,
  445. self::EVENT_TYPE_GERMAN_PERSONNEL_RECURRENT_JOB_REMOVED,
  446. self::EVENT_TYPE_IMMEDIATE_APPLICATION_FORM_COMPLETED,
  447. self::EVENT_TYPE_NEW_USER_VIA_IMMEDIATE_APPLICATION,
  448. self::EVENT_TYPE_REWE_NEW_RECURRENT_JOB_CREATED,
  449. self::EVENT_TYPE_REWE_RECURRENT_JOB_REMOVED,
  450. self::EVENT_TYPE_HAYS_NEW_RECURRENT_JOB_CREATED,
  451. self::EVENT_TYPE_HAYS_RECURRENT_JOB_REMOVED,
  452. self::EVENT_TYPE_RECURRENT_JOBS_SEARCH_INFO_BUBBLE_CLICKED,
  453. self::EVENT_TYPE_NEW_BILLING_FOR_EXTERNAL_RECURRENT_JOB,
  454. self::EVENT_TYPE_EXTENDED_PROFILE_COMPLETED,
  455. self::EVENT_TYPE_DASHBOARD_ACTION,
  456. self::EVENT_TYPE_RECURRENTJOB_FORWARDED_TO_EXTERNAL_APPLICATION_URL,
  457. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_4,
  458. self::EVENT_TYPE_USED_QUOTA_VALUE_RAISED,
  459. self::EVENT_TYPE_MYSTAFFPILOT_NEW_RECURRENT_JOB_CREATED,
  460. self::EVENT_TYPE_MYSTAFFPILOT_RECURRENT_JOB_REMOVED,
  461. self::EVENT_TYPE_JOBWARE_LINK_CLICKED,
  462. self::EVENT_TYPE_MYSTAFFPILOT_RECURRENT_JOB_REMOVED,
  463. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_4,
  464. self::EVENT_TYPE_FORWARDING_TO_EXTERNAL_COOPERATION_PARTNER_INITIATED,
  465. self::EVENT_TYPE_FORWARDED_TO_EXTERNAL_COOPERATION_PARTNER,
  466. self::EVENT_TYPE_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_LINK_CLICKED,
  467. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBLIFT_C_FEED,
  468. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBLIFT_C_FEED,
  469. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBRAPIDO_C_FEED,
  470. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBRAPIDO_C_FEED,
  471. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_TALENTCOM_C_FEED,
  472. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_TALENTCOM_C_FEED,
  473. self::EVENT_TYPE_GOOGLE_INDEXING_API_INDEX_WAS_REQUESTED,
  474. self::EVENT_TYPE_GOOGLE_INDEXING_API_DELETE_WAS_REQUESTED,
  475. self::EVENT_TYPE_RECURRENT_JOB_DEACTIVATED,
  476. self::EVENT_TYPE_RECURRENT_JOB_REACTIVATED,
  477. self::EVENT_TYPE_FEEDBACK_ABOUT_RECURRENT_JOB_DEACTIVATION,
  478. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_KIMETA_C_FEED,
  479. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_KIMETA_C_FEED,
  480. self::EVENT_TYPE_PMS_ARE_INFORMED_ABOUT_EXPIRING_QUOTA,
  481. self::EVENT_TYPE_RECURRENT_JOB_PRINT_BUTTON_HAS_BEEN_CLICKED,
  482. self::EVENT_TYPE_GOOGLE_FOR_JOBS_LINK_CLICKED,
  483. self::EVENT_TYPE_EXTENDED_APPLICATION_FORM_COMPLETED,
  484. self::EVENT_TYPE_NEW_USER_VIA_EXTENDED_APPLICATION,
  485. self::EVENT_TYPE_KIMETA_LINK_CLICKED,
  486. self::EVENT_TYPE_ARTEMIS_RECURRENT_JOB_REMOVED,
  487. self::EVENT_TYPE_JOBOO_ONLINE_LANDINGPAGE_SHOWN,
  488. self::EVENT_TYPE_JOBOO_ONLINE_FORM_COMPLETED,
  489. self::EVENT_TYPE_USER_CLICKED_ON_RECURRENT_JOB_ON_INDEED_SITE,
  490. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_OAUTH2,
  491. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_GSI,
  492. self::EVENT_TYPE_FORWARDED_TO_ORGANIC_RECURRENT_JOB_EXTERNAL_APPLICATION_URL,
  493. self::EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_ACTIVATED,
  494. self::EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_DEACTIVATED,
  495. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_BOOKED,
  496. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED,
  497. self::EVENT_TYPE_RECURRENT_JOB_REMOVAL_REQUESTED,
  498. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDSELECTEDCOOKIES,
  499. self::EVENT_TYPE_FLASCHENPOST_RECURRENT_JOB_REMOVED,
  500. self::EVENT_TYPE_BLACKLISTING_WAS_ADDED,
  501. self::EVENT_TYPE_BLACKLISTING_WAS_REMOVED,
  502. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_STELLENONLINE_C_FEED,
  503. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_STELLENONLINE_C_FEED,
  504. self::EVENT_TYPE_WISAG_ISSUE,
  505. self::EVENT_TYPE_STELLENONLINE_LINK_CLICKED,
  506. self::EVENT_TYPE_RECRUIT_USER_WAS_CONVERTED_TO_JOBOO_USER_WITHOUT_DATA_IMPORT,
  507. self::EVENT_TYPE_RECRUIT_USER_CONVERTED_TO_JOBOO_USER_WITH_DATA_IMPORT,
  508. self::EVENT_TYPE_RECRUIT_DL_CONFIRMATION_LINK_WAS_CLICKED,
  509. self::EVENT_TYPE_RECURRENT_JOB_WAS_SHARED,
  510. self::EVENT_TYPE_SIMILAR_JOB_OFFER_CLICKED,
  511. self::EVENT_TYPE_HOFMANNS_CATERING_RECURRENT_JOB_REMOVED,
  512. self::EVENT_TYPE_DEUTSCHE_BAHN_AG_RECURRENT_JOB_REMOVED,
  513. self::EVENT_TYPE_MILCH_UND_ZUCKER_RECURRENT_JOB_REMOVED,
  514. self::EVENT_TYPE_LOG_IN_VIA_GOOGLE_BUTTON_WAS_PRESSED,
  515. self::EVENT_TYPE_USER_HAS_VISITED_EXTERNAL_JOBOFFER,
  516. self::EVENT_TYPE_CONCLUDIS_API_INFORMED_ABOUT_EXTENDED_APPLICATION,
  517. self::EVENT_TYPE_WHATSAPP_LANDINGPAGE_VISITED,
  518. self::EVENT_TYPE_RECURRENT_JOB_PUBLISHED,
  519. self::EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_ORGANIC_CONVERSATION_MESSAGE_VIA_WHATSAPP,
  520. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_AGENTUR_FUER_ARBEIT,
  521. self::EVENT_TYPE_LOGIN_MAIL_SENT,
  522. self::EVENT_TYPE_KAUFLAND_FEED_RECURRENT_JOB_REMOVED,
  523. self::EVENT_TYPE_WHATSAPP_PERMISSION_GRANTED,
  524. self::EVENT_TYPE_WHATSAPP_PERMISSION_REMOVED,
  525. self::EVENT_TYPE_CONCLUDIS_API_INFORMED_ABOUT_EXTENDED_APPLICATION,
  526. self::EVENT_TYPE_CELLIT_RECURRENT_JOB_REMOVED,
  527. self::EVENT_TYPE_RECURRENT_JOBS_SEARCH_ALL_JOBS_NOT_ENOUGH_RESULTS,
  528. self::EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_MESSAGE_VIA_WHATSAPP,
  529. self::EVENT_TYPE_USER_STARTED_APPLICATION_PROCESS,
  530. self::EVENT_TYPE_USER_STARTED_PHONE_CALL,
  531. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_MEINESTADT_C_FEED,
  532. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_MEINESTADT_C_FEED,
  533. self::EVENT_TYPE_JOBIJOBA_LINK_CLICKED,
  534. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBIJOBA_C_FEED,
  535. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBIJOBA_C_FEED,
  536. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_WHATJOBS_C_FEED,
  537. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_WHATJOBS_C_FEED,
  538. self::EVENT_TYPE_WHATJOBS_LINK_CLICKED,
  539. self::EVENT_TYPE_ADECCO_FEED_RECURRENT_JOB_REMOVED,
  540. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED_NONCONSECUTIVELY,
  541. self::EVENT_TYPE_BILLWERK_CONTRACT_ANNULLED,
  542. self::EVENT_TYPE_JOOBLE_LINK_CLICKED,
  543. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOOBLE_C_FEED,
  544. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOOBLE_C_FEED,
  545. self::EVENT_TYPE_LINKED_LINK_CLICKED,
  546. self::EVENT_TYPE_TODO_ITEM_CREATED,
  547. self::EVENT_TYPE_TODO_ITEM_MARKED_AS_DONE,
  548. self::EVENT_TYPE_NEW_USER_EMAIL_ADDRESS_CONFIRMED,
  549. self::EVENT_TYPE_INVOICE_EMAIL_EDITED,
  550. self::EVENT_TYPE_JOBRADAR_MATCH_PINNED,
  551. self::EVENT_TYPE_JOBRADAR_MATCH_UNPINNED,
  552. self::EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_INTERESTED,
  553. self::EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_DECLINED,
  554. self::EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_BLOCKED,
  555. self::EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_UNBLOCKED,
  556. self::EVENT_TYPE_CLEARING_REQUEST_CREATED,
  557. self::EVENT_TYPE_CLEARING_REQUEST_APPROVED,
  558. self::EVENT_TYPE_CLEARING_REQUEST_REMOVED,
  559. self::EVENT_TYPE_JOBSEEKER_MEMBERSHIP_SUCCESSFULLY_CREATED,
  560. self::EVENT_TYPE_JOBSEEKER_MEMBERSHIP_CTA_TO_PAYMENT_FORM_WAS_CLICKED,
  561. self::EVENT_TYPE_DIRECT_FORWARD_TO_GOOGLE_RATING_PAGE,
  562. self::EVENT_TYPE_POTENTIAL_CUSTOMER_BUSINESS_INFO_CREATED,
  563. self::EVENT_TYPE_DIRECT_FORWARD_TO_TRUSTPILOT_RATING_PAGE,
  564. self::EVENT_TYPE_USER_HAS_CLICKED_RECURRENT_JOB_WEBSITE,
  565. self::EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_RECURRENT_JOB_OVERVIEW,
  566. self::EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_FIXED_BOTTOM_ALERT,
  567. self::EVENT_TYPE_DIRECT_FORWARD_TO_JOBBOERSENCHECK_RATING_PAGE,
  568. self::EVENT_TYPE_TERMS_AND_CONDITIONS_HAS_BEEN_ACCEPTED,
  569. self::EVENT_TYPE_NEW_EXTERNALLY_INCOMING_APPLICATION_ACCEPTED,
  570. self::EVENT_TYPE_NEW_WECLAPP_CONTRACT_INTEGRATED,
  571. self::EVENT_TYPE_WECLAPP_CONTRACT_EDITED,
  572. self::EVENT_TYPE_WECLAPP_CONTRACT_REMOVED,
  573. self::EVENT_TYPE_DIRECT_FORWARD_TO_FACEBOOK_RATING_PAGE,
  574. self::EVENT_TYPE_RECURRENT_JOB_DUPLICATED_BY_ADMIN,
  575. self::EVENT_TYPE_STEPSTONE_FEED_RECURRENT_JOB_REMOVED,
  576. self::EVENT_TYPE_RECURRENT_JOB_DUPLICATED_BY_ADMIN,
  577. self::EVENT_TYPE_CONTRACT_CANCELLATION_FEEDBACK_SUBMITTED,
  578. self::EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REQUESTED,
  579. self::EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REMOVED,
  580. self::EVENT_TYPE_COUPON_CODE_APPLY,
  581. self::EVENT_TYPE_APETITO_FEED_RECURRENT_JOB_REMOVED,
  582. self::EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_CLICKED,
  583. self::EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_PRICE_CLICKED,
  584. self::EVENT_TYPE_JOBOFFERER_LINK_TO_CONTENTJOBOODE_CLICKED,
  585. self::EVENT_TYPE_JOBOFFERER_ONBOARDING_FINISHED,
  586. self::EVENT_TYPE_WEBFLOW_PAGE_REQUEST_WITH_GOOGLE_ADS_DATA,
  587. self::EVENT_TYPE_XING_FEED_RECURRENT_JOB_REMOVED
  588. ];
  589. /**
  590. * @throws Exception
  591. */
  592. public function __construct(
  593. int $eventType,
  594. ?string $additionalData
  595. ) {
  596. if (!ReflectionHelper::hasConstWithValue(
  597. self::class,
  598. 'EVENT_TYPE_',
  599. $eventType
  600. )) {
  601. throw new ValueError("Unknown event type '$eventType'.");
  602. }
  603. $this->eventType = $eventType;
  604. $this->additionalData = is_null($additionalData) ? null : mb_substr($additionalData, 0, 4096);
  605. $this->occuredAt = DateTimeUtility::createDateTimeUtc();
  606. }
  607. #[ORM\Id]
  608. #[ORM\GeneratedValue(strategy: 'CUSTOM')]
  609. #[ORM\CustomIdGenerator(class: DatabaseIdGenerator::class)]
  610. #[ORM\Column(
  611. type : Types::GUID,
  612. unique: true
  613. )]
  614. private ?string $id;
  615. public function setId(string $id): void
  616. {
  617. GuidUtility::validOrThrow($id);
  618. $this->id = $id;
  619. }
  620. public function getId(): ?string
  621. {
  622. return $this->id;
  623. }
  624. #[ORM\Column(
  625. type : Types::SMALLINT,
  626. nullable: false
  627. )]
  628. private int $eventType;
  629. public function getEventType(): int
  630. {
  631. return $this->eventType;
  632. }
  633. /**
  634. * @throws Exception
  635. */
  636. public function getEventTypeTitle(): string
  637. {
  638. $refl = new ReflectionClass(BusinessEvent::class);
  639. $constants = $refl->getConstants();
  640. foreach ($constants as $constantName => $constantValue) {
  641. if (substr($constantName, 0, 11) === 'EVENT_TYPE_' && $constantValue === $this->getEventType()) {
  642. return strtolower(str_replace('_', '-', substr($constantName, 11)));
  643. }
  644. }
  645. throw new Exception('Cannot resolve title for event type ' . $this->getEventType());
  646. }
  647. #[ORM\Column(
  648. type : Types::DATETIME_MUTABLE,
  649. nullable: false
  650. )]
  651. private DateTime $occuredAt;
  652. public function setOccuredAt(DateTime $occuredAt): void
  653. {
  654. $this->occuredAt = $occuredAt;
  655. }
  656. public function getOccuredAt(): DateTime
  657. {
  658. return $this->occuredAt;
  659. }
  660. /**
  661. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  662. * if a user is deleted.
  663. */
  664. #[ORM\Column(
  665. type : Types::GUID,
  666. nullable: true
  667. )]
  668. private ?string $affectedUserId = null;
  669. public function setAffectedUserId(?string $userId): void
  670. {
  671. GuidUtility::validOrThrow($userId, true);
  672. $this->affectedUserId = $userId;
  673. }
  674. public function getAffectedUserId(): ?string
  675. {
  676. return $this->affectedUserId;
  677. }
  678. #[ORM\Column(
  679. type : Types::BOOLEAN,
  680. nullable: false
  681. )]
  682. private bool $affectedUserIsJobofferer = false;
  683. public function setAffectedUserIsJobofferer(bool $affectedUserIsJobofferer): void
  684. {
  685. $this->affectedUserIsJobofferer = $affectedUserIsJobofferer;
  686. }
  687. public function getAffectedUserIsJobofferer(): bool
  688. {
  689. return $this->affectedUserIsJobofferer;
  690. }
  691. #[ORM\Column(
  692. type : Types::BOOLEAN,
  693. nullable: false
  694. )]
  695. private bool $affectedUserIsJobseeker = false;
  696. public function setAffectedUserIsJobseeker(bool $affectedUserIsJobseeker): void
  697. {
  698. $this->affectedUserIsJobseeker = $affectedUserIsJobseeker;
  699. }
  700. public function getAffectedUserIsJobseeker(): bool
  701. {
  702. return $this->affectedUserIsJobseeker;
  703. }
  704. /**
  705. * In order to show statistics related to the cohorte of all users registered on day X, we need this field.
  706. *
  707. * E.g. "from all user registered on 2018-04-07, how many deleted themselves later?"
  708. */
  709. #[ORM\Column(
  710. type : Types::DATETIME_MUTABLE,
  711. nullable: true
  712. )]
  713. private ?DateTime $affectedUserRegisteredAt = null;
  714. public function setAffectedUserRegisteredAt(?DateTime $affectedUserRegisteredAt): void
  715. {
  716. $this->affectedUserRegisteredAt = $affectedUserRegisteredAt;
  717. }
  718. public function getAffectedUserRegisteredAt(): ?DateTime
  719. {
  720. return $this->affectedUserRegisteredAt;
  721. }
  722. /**
  723. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  724. * if a user is deleted.
  725. */
  726. #[ORM\Column(
  727. type : Types::GUID,
  728. nullable: true
  729. )]
  730. private ?string $relatedRecurrentJobId = null;
  731. public function setRelatedRecurrentJobId(?string $relatedRecurrentJobId = null): void
  732. {
  733. GuidUtility::validOrThrow($relatedRecurrentJobId, true);
  734. $this->relatedRecurrentJobId = $relatedRecurrentJobId;
  735. }
  736. public function getRelatedRecurrentJobId(): ?string
  737. {
  738. return $this->relatedRecurrentJobId;
  739. }
  740. /**
  741. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  742. * if a user is deleted.
  743. */
  744. #[ORM\Column(
  745. type : Types::GUID,
  746. nullable: true
  747. )]
  748. private ?string $relatedWantedJobId = null;
  749. public function setRelatedWantedJobId(?string $relatedWantedJobId = null): void
  750. {
  751. GuidUtility::validOrThrow($relatedWantedJobId, true);
  752. $this->relatedWantedJobId = $relatedWantedJobId;
  753. }
  754. public function getRelatedWantedJobId(): ?string
  755. {
  756. return $this->relatedWantedJobId;
  757. }
  758. #[ORM\Column(
  759. type : Types::TEXT,
  760. length : 4096,
  761. nullable: true
  762. )]
  763. private ?string $additionalData;
  764. public function getAdditionalData(): ?string
  765. {
  766. return $this->additionalData;
  767. }
  768. #[ORM\Column(
  769. type : Types::TEXT,
  770. length : 256,
  771. nullable: true
  772. )]
  773. private ?string $requestId = null;
  774. public function setRequestId(?string $requestId = null): void
  775. {
  776. $this->requestId = $requestId;
  777. }
  778. public function getRequestId(): ?string
  779. {
  780. return $this->requestId;
  781. }
  782. #[ORM\Column(
  783. type : Types::TEXT,
  784. length : 256,
  785. nullable: true
  786. )]
  787. private ?string $sessionId = null;
  788. public function setSessionId(?string $sessionId = null): void
  789. {
  790. $this->sessionId = $sessionId;
  791. }
  792. public function getSessionId(): ?string
  793. {
  794. return $this->sessionId;
  795. }
  796. #[ORM\Column(
  797. type : Types::TEXT,
  798. length : 64,
  799. nullable: true
  800. )]
  801. private ?string $clientId = null;
  802. public function setClientId(?string $clientId = null): void
  803. {
  804. $this->clientId = $clientId;
  805. }
  806. public function getClientId(): ?string
  807. {
  808. return $this->clientId;
  809. }
  810. #[ORM\Column(
  811. type : Types::BOOLEAN,
  812. nullable: false
  813. )]
  814. private bool $isMeerbuschOfficeRequest = false;
  815. public function getIsMeerbuschOfficeRequest(): bool
  816. {
  817. return $this->isMeerbuschOfficeRequest;
  818. }
  819. public function setIsMeerbuschOfficeRequest(bool $isMeerbuschOfficeRequest): void
  820. {
  821. $this->isMeerbuschOfficeRequest = $isMeerbuschOfficeRequest;
  822. }
  823. #[ORM\Column(
  824. type : Types::BOOLEAN,
  825. nullable: true
  826. )]
  827. private ?bool $isProbablyBotRequest = null;
  828. public function getIsProbablyBotRequest(): ?bool
  829. {
  830. return $this->isProbablyBotRequest;
  831. }
  832. public function setIsProbablyBotRequest(?bool $isProbablyBotRequest): void
  833. {
  834. $this->isProbablyBotRequest = $isProbablyBotRequest;
  835. }
  836. }