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 EVENT_TYPE_FUNKE_FEED_RECURRENT_JOB_REMOVED = 289;
  324. public const array ORDERED_EVENT_TYPES = [
  325. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED,
  326. self::EVENT_TYPE_NEW_USER_ACCOUNT_CONFIRMED,
  327. self::EVENT_TYPE_BASE_PROFILE_COMPLETED,
  328. self::EVENT_TYPE_EXTENDED_PLUS_PROFILE_COMPLETED,
  329. self::EVENT_TYPE_SUBSCRIPTION_COMPLETED,
  330. self::EVENT_TYPE_USER_REMOVED_OWN_ACCOUNT,
  331. self::EVENT_TYPE_ACCOUNT_REMOVED_BY_ADMIN,
  332. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_RECEIVED_INCOMING,
  333. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_SENT_OUTGOING,
  334. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_EXTRACT_REPLY_FROM_INCOMING,
  335. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_TRIGGERED_MAILBOMB_PROTECTION,
  336. self::EVENT_TYPE_SENT_SINGLE_CONVERSATION_MESSAGE,
  337. self::EVENT_TYPE_SENT_MULTIPLE_CONVERSATION_MESSAGES,
  338. self::EVENT_TYPE_SENT_AUTOMATED_CONVERSATION_MESSAGE,
  339. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_READ,
  340. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_REMOVED,
  341. self::EVENT_TYPE_CONVERSATION_WAS_REMOVED,
  342. self::EVENT_TYPE_CONVERSATION_MESSAGE_WAS_RESTORED,
  343. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_ACTIVATION,
  344. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_SET_OWN_PASSWORD,
  345. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_BASE_PROFILE,
  346. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_EXTENDED_PROFILE_FIELDS,
  347. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBS,
  348. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITH_TRIAL,
  349. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL,
  350. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_CONVERSATION_MESSAGES,
  351. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_UNREAD_JOBRADAR_MATCHES,
  352. self::EVENT_TYPE_SEND_MAIL_NOTIFICATION_FOR_PAUSED,
  353. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBSEEKER_ACTIVITY,
  354. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PROFILE,
  355. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_BASE_PLUS_PROFILE,
  356. self::EVENT_TYPE_RECURRENTJOBSSEARCH_ENOUGHRESULTS,
  357. self::EVENT_TYPE_RECURRENTJOBSSEARCH_NOTENOUGHRESULTS,
  358. self::EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  359. self::EVENT_TYPE_RECURRENTJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  360. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_ENOUGHRESULTS,
  361. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_NOTENOUGHRESULTS,
  362. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  363. self::EVENT_TYPE_JOBSEEKERPROFILESSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  364. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDALLCOOKIES,
  365. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYANALYTICSCOOKIES,
  366. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDONLYMARKETINGCOOKIES,
  367. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDNOCOOKIES,
  368. self::EVENT_TYPE_USER_SET_OWN_PASSWORD,
  369. self::EVENT_TYPE_TRIGGERED_DIRECT_APPLICATION_FROM_CONVERSATION_MESSAGE,
  370. self::EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_CONFIRMED,
  371. self::EVENT_TYPE_BROWSER_PUSH_NOTIFICATION_WITHDRAWN,
  372. self::EVENT_TYPE_DIRECT_EMAIL_COMMUNICATION_COULD_NOT_DELIVER_REPLY_FROM_UNSUBSCRIBED_JOBOFFERER,
  373. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_VISITED,
  374. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_SUBSCRIPTION_WITHOUT_TRIAL_DURING_CAMPAIGN,
  375. self::EVENT_TYPE_RATED_POSITIVE,
  376. self::EVENT_TYPE_RATED_NEGATIVE,
  377. self::EVENT_TYPE_USED_FACEBOOK_RATING_LINK,
  378. self::EVENT_TYPE_USED_GOOGLE_RATING_LINK,
  379. self::EVENT_TYPE_USED_TRUSTEDSHOPS_RATING_LINK,
  380. self::EVENT_TYPE_SEES_RATING_OPTION,
  381. self::EVENT_TYPE_SEES_POSITIVE_RATING_OPTION,
  382. self::EVENT_TYPE_SUBSCRIPTION_CANCELED,
  383. self::EVENT_TYPE_DETAILED_RECURRENT_JOB_VIEW_BUTTON_IS_CLICKED,
  384. self::EVENT_TYPE_RECURRENTJOB_CREATED,
  385. self::EVENT_TYPE_RECURRENTJOB_EDITED,
  386. self::EVENT_TYPE_PROFILE_EDITED,
  387. self::EVENT_TYPE_RECURRENTJOB_CREATED_DURING_PROFILE_CREATION,
  388. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBOFFERER_TIPS,
  389. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_JOBSEEKER_TIPS,
  390. self::EVENT_TYPE_PROFILE_PHOTO_WAS_ADDED,
  391. self::EVENT_TYPE_PROFILE_PHOTO_WAS_DELETED,
  392. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_1,
  393. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_2,
  394. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_3,
  395. self::EVENT_TYPE_WANTEDJOBSSEARCH_ENOUGHRESULTS,
  396. self::EVENT_TYPE_WANTEDJOBSSEARCH_NOTENOUGHRESULTS,
  397. self::EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_ENOUGHRESULTS,
  398. self::EVENT_TYPE_WANTEDJOBSSEARCH_QUALITYSTATE_NOTENOUGHRESULTS,
  399. self::EVENT_TYPE_DETAILED_WANTED_JOB_VIEW_BUTTON_IS_CLICKED,
  400. self::EVENT_TYPE_WANTEDJOB_CREATED,
  401. self::EVENT_TYPE_WANTEDJOB_EDITED,
  402. self::EVENT_TYPE_WANTEDJOB_CREATED_DURING_PROFILE_CREATION,
  403. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_WANTED_JOBS,
  404. self::EVENT_TYPE_JOBLIFT_JOBOFFER_CONTACTED,
  405. self::EVENT_TYPE_BASE_PLUS_PROFILE_COMPLETED,
  406. self::EVENT_TYPE_ABOUT_ME_WAS_ADDED,
  407. self::EVENT_TYPE_CV_WAS_ADDED,
  408. self::EVENT_TYPE_PHONE_NUMBER_WAS_ADDED,
  409. self::EVENT_TYPE_ADDITIONAL_DOCUMENT_WAS_ADDED,
  410. self::EVENT_TYPE_NEW_GOHIRING_JOBOFFER_INTEGRATED,
  411. self::EVENT_TYPE_GOHIRING_JOBOFFER_DELETED,
  412. self::EVENT_TYPE_GOHIRING_JOBOFFER_UPDATED,
  413. self::EVENT_TYPE_RECURRENT_JOB_SEARCH_CONTAINS_JOBLIFT_RESULTS,
  414. self::EVENT_TYPE_RECURRENT_JOB_SEARCH_DOES_NOT_CONTAIN_JOBLIFT_RESULTS,
  415. self::EVENT_TYPE_LINK_FROM_EBAY_AWAY_MESSAGE_CLICKED,
  416. self::EVENT_TYPE_MISSING_ACTIVATION_EMAIL_FROM_WEBDE_SENT,
  417. self::EVENT_TYPE_POPULAR_JOBS_BUTTON_CLICKED,
  418. self::EVENT_TYPE_SUGGESTED_POPULAR_JOB_CHOSEN,
  419. self::EVENT_TYPE_JOBRAPIDO_LINK_CLICKED,
  420. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_JOBOFFERER_ACTIVITY,
  421. self::EVENT_TYPE_CV_WAS_VIEWED_IN_PROFILE,
  422. self::EVENT_TYPE_CV_WAS_VIEWED_IN_SEARCH,
  423. self::EVENT_TYPE_CV_WAS_VIEWED_IN_UNREAD_MESSAGES,
  424. self::EVENT_TYPE_JOBSEEKER_CLICKED_SHARE_PROFILE_ICON,
  425. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED,
  426. self::EVENT_TYPE_EXTERNAL_PARTNERS_JOBOFFER_INFO_PAGE_VISITED_FROM_PREMIUM_JOB,
  427. self::EVENT_TYPE_JOBLIFT_LINK_CLICKED,
  428. self::EVENT_TYPE_INDEED_RECRUIT_DL_LANDINGPAGE_SHOWN,
  429. self::EVENT_TYPE_INDEED_RECRUIT_DL_FORM_COMPLETED,
  430. self::EVENT_TYPE_GOHIRING_INCOMING_NEW_FAILED_nolongerused,
  431. self::EVENT_TYPE_GOHIRING_INCOMING_UPDATE_FAILED_nolongerused,
  432. self::EVENT_TYPE_GOHIRING_INCOMING_DELETE_FAILED_nolongerused,
  433. self::EVENT_TYPE_JOBSEEKER_HAS_CLICKED_DOWNLOAD_DOCUMENT_TEMPLATE,
  434. self::EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY,
  435. self::EVENT_TYPE_USER_CLICKED_MAILTO_LINK_IN_CONVERSATION_MESSAGE_BODY_OF_RECRUIT_DL_SENDER,
  436. self::EVENT_TYPE_EBAY_LINK_CLICKED,
  437. self::EVENT_TYPE_APP_STORE_ICON_CLICKED,
  438. self::EVENT_TYPE_PLAY_STORE_ICON_CLICKED,
  439. self::EVENT_TYPE_SELFDESCRIPTION_PROPOSAL_CHANGED,
  440. self::EVENT_TYPE_PLAY_STORE_ICON_CLICKED,
  441. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_CREATED,
  442. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_CREATED,
  443. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_EDITED,
  444. self::EVENT_TYPE_EXTERNAL_PARTNER_CUSTOMER_QUOTA_DEACTIVATED,
  445. self::EVENT_TYPE_GERMAN_PERSONNEL_NEW_RECURRENT_JOB_CREATED,
  446. self::EVENT_TYPE_GERMAN_PERSONNEL_RECURRENT_JOB_REMOVED,
  447. self::EVENT_TYPE_IMMEDIATE_APPLICATION_FORM_COMPLETED,
  448. self::EVENT_TYPE_NEW_USER_VIA_IMMEDIATE_APPLICATION,
  449. self::EVENT_TYPE_REWE_NEW_RECURRENT_JOB_CREATED,
  450. self::EVENT_TYPE_REWE_RECURRENT_JOB_REMOVED,
  451. self::EVENT_TYPE_HAYS_NEW_RECURRENT_JOB_CREATED,
  452. self::EVENT_TYPE_HAYS_RECURRENT_JOB_REMOVED,
  453. self::EVENT_TYPE_RECURRENT_JOBS_SEARCH_INFO_BUBBLE_CLICKED,
  454. self::EVENT_TYPE_NEW_BILLING_FOR_EXTERNAL_RECURRENT_JOB,
  455. self::EVENT_TYPE_EXTENDED_PROFILE_COMPLETED,
  456. self::EVENT_TYPE_DASHBOARD_ACTION,
  457. self::EVENT_TYPE_RECURRENTJOB_FORWARDED_TO_EXTERNAL_APPLICATION_URL,
  458. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_4,
  459. self::EVENT_TYPE_USED_QUOTA_VALUE_RAISED,
  460. self::EVENT_TYPE_MYSTAFFPILOT_NEW_RECURRENT_JOB_CREATED,
  461. self::EVENT_TYPE_MYSTAFFPILOT_RECURRENT_JOB_REMOVED,
  462. self::EVENT_TYPE_JOBWARE_LINK_CLICKED,
  463. self::EVENT_TYPE_MYSTAFFPILOT_RECURRENT_JOB_REMOVED,
  464. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_MISSING_PROFILE_FIELDS_JOBSEEKER_4,
  465. self::EVENT_TYPE_FORWARDING_TO_EXTERNAL_COOPERATION_PARTNER_INITIATED,
  466. self::EVENT_TYPE_FORWARDED_TO_EXTERNAL_COOPERATION_PARTNER,
  467. self::EVENT_TYPE_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_LINK_CLICKED,
  468. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBLIFT_C_FEED,
  469. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBLIFT_C_FEED,
  470. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBRAPIDO_C_FEED,
  471. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBRAPIDO_C_FEED,
  472. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_TALENTCOM_C_FEED,
  473. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_TALENTCOM_C_FEED,
  474. self::EVENT_TYPE_GOOGLE_INDEXING_API_INDEX_WAS_REQUESTED,
  475. self::EVENT_TYPE_GOOGLE_INDEXING_API_DELETE_WAS_REQUESTED,
  476. self::EVENT_TYPE_RECURRENT_JOB_DEACTIVATED,
  477. self::EVENT_TYPE_RECURRENT_JOB_REACTIVATED,
  478. self::EVENT_TYPE_FEEDBACK_ABOUT_RECURRENT_JOB_DEACTIVATION,
  479. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_KIMETA_C_FEED,
  480. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_KIMETA_C_FEED,
  481. self::EVENT_TYPE_PMS_ARE_INFORMED_ABOUT_EXPIRING_QUOTA,
  482. self::EVENT_TYPE_RECURRENT_JOB_PRINT_BUTTON_HAS_BEEN_CLICKED,
  483. self::EVENT_TYPE_GOOGLE_FOR_JOBS_LINK_CLICKED,
  484. self::EVENT_TYPE_EXTENDED_APPLICATION_FORM_COMPLETED,
  485. self::EVENT_TYPE_NEW_USER_VIA_EXTENDED_APPLICATION,
  486. self::EVENT_TYPE_KIMETA_LINK_CLICKED,
  487. self::EVENT_TYPE_ARTEMIS_RECURRENT_JOB_REMOVED,
  488. self::EVENT_TYPE_JOBOO_ONLINE_LANDINGPAGE_SHOWN,
  489. self::EVENT_TYPE_JOBOO_ONLINE_FORM_COMPLETED,
  490. self::EVENT_TYPE_USER_CLICKED_ON_RECURRENT_JOB_ON_INDEED_SITE,
  491. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_OAUTH2,
  492. self::EVENT_TYPE_NEW_USER_ACCOUNT_REGISTERED_VIA_GOOGLE_IDENTITY_GSI,
  493. self::EVENT_TYPE_FORWARDED_TO_ORGANIC_RECURRENT_JOB_EXTERNAL_APPLICATION_URL,
  494. self::EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_ACTIVATED,
  495. self::EVENT_TYPE_RECURRENT_JOB_AUTOMATIC_RENEWAL_COMPONENT_SUBSCRIPTION_WAS_DEACTIVATED,
  496. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_BOOKED,
  497. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED,
  498. self::EVENT_TYPE_RECURRENT_JOB_REMOVAL_REQUESTED,
  499. self::EVENT_TYPE_COOKIEPREFERENCES_USERACCEPTEDSELECTEDCOOKIES,
  500. self::EVENT_TYPE_FLASCHENPOST_RECURRENT_JOB_REMOVED,
  501. self::EVENT_TYPE_BLACKLISTING_WAS_ADDED,
  502. self::EVENT_TYPE_BLACKLISTING_WAS_REMOVED,
  503. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_STELLENONLINE_C_FEED,
  504. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_STELLENONLINE_C_FEED,
  505. self::EVENT_TYPE_WISAG_ISSUE,
  506. self::EVENT_TYPE_STELLENONLINE_LINK_CLICKED,
  507. self::EVENT_TYPE_RECRUIT_USER_WAS_CONVERTED_TO_JOBOO_USER_WITHOUT_DATA_IMPORT,
  508. self::EVENT_TYPE_RECRUIT_USER_CONVERTED_TO_JOBOO_USER_WITH_DATA_IMPORT,
  509. self::EVENT_TYPE_RECRUIT_DL_CONFIRMATION_LINK_WAS_CLICKED,
  510. self::EVENT_TYPE_RECURRENT_JOB_WAS_SHARED,
  511. self::EVENT_TYPE_SIMILAR_JOB_OFFER_CLICKED,
  512. self::EVENT_TYPE_HOFMANNS_CATERING_RECURRENT_JOB_REMOVED,
  513. self::EVENT_TYPE_DEUTSCHE_BAHN_AG_RECURRENT_JOB_REMOVED,
  514. self::EVENT_TYPE_MILCH_UND_ZUCKER_RECURRENT_JOB_REMOVED,
  515. self::EVENT_TYPE_LOG_IN_VIA_GOOGLE_BUTTON_WAS_PRESSED,
  516. self::EVENT_TYPE_USER_HAS_VISITED_EXTERNAL_JOBOFFER,
  517. self::EVENT_TYPE_CONCLUDIS_API_INFORMED_ABOUT_EXTENDED_APPLICATION,
  518. self::EVENT_TYPE_WHATSAPP_LANDINGPAGE_VISITED,
  519. self::EVENT_TYPE_RECURRENT_JOB_PUBLISHED,
  520. self::EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_ORGANIC_CONVERSATION_MESSAGE_VIA_WHATSAPP,
  521. self::EVENT_TYPE_SENT_MAIL_NOTIFICATION_FOR_AGENTUR_FUER_ARBEIT,
  522. self::EVENT_TYPE_LOGIN_MAIL_SENT,
  523. self::EVENT_TYPE_KAUFLAND_FEED_RECURRENT_JOB_REMOVED,
  524. self::EVENT_TYPE_WHATSAPP_PERMISSION_GRANTED,
  525. self::EVENT_TYPE_WHATSAPP_PERMISSION_REMOVED,
  526. self::EVENT_TYPE_CONCLUDIS_API_INFORMED_ABOUT_EXTENDED_APPLICATION,
  527. self::EVENT_TYPE_CELLIT_RECURRENT_JOB_REMOVED,
  528. self::EVENT_TYPE_RECURRENT_JOBS_SEARCH_ALL_JOBS_NOT_ENOUGH_RESULTS,
  529. self::EVENT_TYPE_INFORMED_USER_ABOUT_UNREAD_INTEGRATED_EXTERNAL_PARTNER_CUSTOMER_PREMIUM_RADAR_MESSAGE_VIA_WHATSAPP,
  530. self::EVENT_TYPE_USER_STARTED_APPLICATION_PROCESS,
  531. self::EVENT_TYPE_USER_STARTED_PHONE_CALL,
  532. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_MEINESTADT_C_FEED,
  533. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_MEINESTADT_C_FEED,
  534. self::EVENT_TYPE_JOBIJOBA_LINK_CLICKED,
  535. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOBIJOBA_C_FEED,
  536. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOBIJOBA_C_FEED,
  537. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_WHATJOBS_C_FEED,
  538. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_WHATJOBS_C_FEED,
  539. self::EVENT_TYPE_WHATJOBS_LINK_CLICKED,
  540. self::EVENT_TYPE_ADECCO_FEED_RECURRENT_JOB_REMOVED,
  541. self::EVENT_TYPE_RECURRENT_JOB_COMPONENT_SUBSCRIPTION_WAS_RENEWED_NONCONSECUTIVELY,
  542. self::EVENT_TYPE_BILLWERK_CONTRACT_ANNULLED,
  543. self::EVENT_TYPE_JOOBLE_LINK_CLICKED,
  544. self::EVENT_TYPE_RECURRENT_JOB_ADDED_TO_JOOBLE_C_FEED,
  545. self::EVENT_TYPE_RECURRENT_JOB_REMOVED_FROM_JOOBLE_C_FEED,
  546. self::EVENT_TYPE_LINKED_LINK_CLICKED,
  547. self::EVENT_TYPE_TODO_ITEM_CREATED,
  548. self::EVENT_TYPE_TODO_ITEM_MARKED_AS_DONE,
  549. self::EVENT_TYPE_NEW_USER_EMAIL_ADDRESS_CONFIRMED,
  550. self::EVENT_TYPE_INVOICE_EMAIL_EDITED,
  551. self::EVENT_TYPE_JOBRADAR_MATCH_PINNED,
  552. self::EVENT_TYPE_JOBRADAR_MATCH_UNPINNED,
  553. self::EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_INTERESTED,
  554. self::EVENT_TYPE_JOBRADAR_MATCH_JOBSEEKER_DECLINED,
  555. self::EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_BLOCKED,
  556. self::EVENT_TYPE_JOBRADAR_MATCH_JOBOFFERER_UNBLOCKED,
  557. self::EVENT_TYPE_CLEARING_REQUEST_CREATED,
  558. self::EVENT_TYPE_CLEARING_REQUEST_APPROVED,
  559. self::EVENT_TYPE_CLEARING_REQUEST_REMOVED,
  560. self::EVENT_TYPE_JOBSEEKER_MEMBERSHIP_SUCCESSFULLY_CREATED,
  561. self::EVENT_TYPE_JOBSEEKER_MEMBERSHIP_CTA_TO_PAYMENT_FORM_WAS_CLICKED,
  562. self::EVENT_TYPE_DIRECT_FORWARD_TO_GOOGLE_RATING_PAGE,
  563. self::EVENT_TYPE_POTENTIAL_CUSTOMER_BUSINESS_INFO_CREATED,
  564. self::EVENT_TYPE_DIRECT_FORWARD_TO_TRUSTPILOT_RATING_PAGE,
  565. self::EVENT_TYPE_USER_HAS_CLICKED_RECURRENT_JOB_WEBSITE,
  566. self::EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_RECURRENT_JOB_OVERVIEW,
  567. self::EVENT_TYPE_USER_HAS_CLICKED_MEMBERSHIP_BUTTON_FROM_FIXED_BOTTOM_ALERT,
  568. self::EVENT_TYPE_DIRECT_FORWARD_TO_JOBBOERSENCHECK_RATING_PAGE,
  569. self::EVENT_TYPE_TERMS_AND_CONDITIONS_HAS_BEEN_ACCEPTED,
  570. self::EVENT_TYPE_NEW_EXTERNALLY_INCOMING_APPLICATION_ACCEPTED,
  571. self::EVENT_TYPE_NEW_WECLAPP_CONTRACT_INTEGRATED,
  572. self::EVENT_TYPE_WECLAPP_CONTRACT_EDITED,
  573. self::EVENT_TYPE_WECLAPP_CONTRACT_REMOVED,
  574. self::EVENT_TYPE_DIRECT_FORWARD_TO_FACEBOOK_RATING_PAGE,
  575. self::EVENT_TYPE_RECURRENT_JOB_DUPLICATED_BY_ADMIN,
  576. self::EVENT_TYPE_STEPSTONE_FEED_RECURRENT_JOB_REMOVED,
  577. self::EVENT_TYPE_RECURRENT_JOB_DUPLICATED_BY_ADMIN,
  578. self::EVENT_TYPE_CONTRACT_CANCELLATION_FEEDBACK_SUBMITTED,
  579. self::EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REQUESTED,
  580. self::EVENT_TYPE_USER_MEMBERSHIP_PAUSE_REMOVED,
  581. self::EVENT_TYPE_COUPON_CODE_APPLY,
  582. self::EVENT_TYPE_APETITO_FEED_RECURRENT_JOB_REMOVED,
  583. self::EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_CLICKED,
  584. self::EVENT_TYPE_JOBOFFERER_LINK_TO_PROJOBOODE_PRICE_CLICKED,
  585. self::EVENT_TYPE_JOBOFFERER_LINK_TO_CONTENTJOBOODE_CLICKED,
  586. self::EVENT_TYPE_JOBOFFERER_ONBOARDING_FINISHED,
  587. self::EVENT_TYPE_WEBFLOW_PAGE_REQUEST_WITH_GOOGLE_ADS_DATA,
  588. self::EVENT_TYPE_XING_FEED_RECURRENT_JOB_REMOVED,
  589. self::EVENT_TYPE_FUNKE_FEED_RECURRENT_JOB_REMOVED
  590. ];
  591. /**
  592. * @throws Exception
  593. */
  594. public function __construct(
  595. int $eventType,
  596. ?string $additionalData
  597. ) {
  598. if (!ReflectionHelper::hasConstWithValue(
  599. self::class,
  600. 'EVENT_TYPE_',
  601. $eventType
  602. )) {
  603. throw new ValueError("Unknown event type '$eventType'.");
  604. }
  605. $this->eventType = $eventType;
  606. $this->additionalData = is_null($additionalData) ? null : mb_substr($additionalData, 0, 4096);
  607. $this->occuredAt = DateTimeUtility::createDateTimeUtc();
  608. }
  609. #[ORM\Id]
  610. #[ORM\GeneratedValue(strategy: 'CUSTOM')]
  611. #[ORM\CustomIdGenerator(class: DatabaseIdGenerator::class)]
  612. #[ORM\Column(
  613. type : Types::GUID,
  614. unique: true
  615. )]
  616. private ?string $id;
  617. public function setId(string $id): void
  618. {
  619. GuidUtility::validOrThrow($id);
  620. $this->id = $id;
  621. }
  622. public function getId(): ?string
  623. {
  624. return $this->id;
  625. }
  626. #[ORM\Column(
  627. type : Types::SMALLINT,
  628. nullable: false
  629. )]
  630. private int $eventType;
  631. public function getEventType(): int
  632. {
  633. return $this->eventType;
  634. }
  635. /**
  636. * @throws Exception
  637. */
  638. public function getEventTypeTitle(): string
  639. {
  640. $refl = new ReflectionClass(BusinessEvent::class);
  641. $constants = $refl->getConstants();
  642. foreach ($constants as $constantName => $constantValue) {
  643. if (substr($constantName, 0, 11) === 'EVENT_TYPE_' && $constantValue === $this->getEventType()) {
  644. return strtolower(str_replace('_', '-', substr($constantName, 11)));
  645. }
  646. }
  647. throw new Exception('Cannot resolve title for event type ' . $this->getEventType());
  648. }
  649. #[ORM\Column(
  650. type : Types::DATETIME_MUTABLE,
  651. nullable: false
  652. )]
  653. private DateTime $occuredAt;
  654. public function setOccuredAt(DateTime $occuredAt): void
  655. {
  656. $this->occuredAt = $occuredAt;
  657. }
  658. public function getOccuredAt(): DateTime
  659. {
  660. return $this->occuredAt;
  661. }
  662. /**
  663. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  664. * if a user is deleted.
  665. */
  666. #[ORM\Column(
  667. type : Types::GUID,
  668. nullable: true
  669. )]
  670. private ?string $affectedUserId = null;
  671. public function setAffectedUserId(?string $userId): void
  672. {
  673. GuidUtility::validOrThrow($userId, true);
  674. $this->affectedUserId = $userId;
  675. }
  676. public function getAffectedUserId(): ?string
  677. {
  678. return $this->affectedUserId;
  679. }
  680. #[ORM\Column(
  681. type : Types::BOOLEAN,
  682. nullable: false
  683. )]
  684. private bool $affectedUserIsJobofferer = false;
  685. public function setAffectedUserIsJobofferer(bool $affectedUserIsJobofferer): void
  686. {
  687. $this->affectedUserIsJobofferer = $affectedUserIsJobofferer;
  688. }
  689. public function getAffectedUserIsJobofferer(): bool
  690. {
  691. return $this->affectedUserIsJobofferer;
  692. }
  693. #[ORM\Column(
  694. type : Types::BOOLEAN,
  695. nullable: false
  696. )]
  697. private bool $affectedUserIsJobseeker = false;
  698. public function setAffectedUserIsJobseeker(bool $affectedUserIsJobseeker): void
  699. {
  700. $this->affectedUserIsJobseeker = $affectedUserIsJobseeker;
  701. }
  702. public function getAffectedUserIsJobseeker(): bool
  703. {
  704. return $this->affectedUserIsJobseeker;
  705. }
  706. /**
  707. * In order to show statistics related to the cohorte of all users registered on day X, we need this field.
  708. *
  709. * E.g. "from all user registered on 2018-04-07, how many deleted themselves later?"
  710. */
  711. #[ORM\Column(
  712. type : Types::DATETIME_MUTABLE,
  713. nullable: true
  714. )]
  715. private ?DateTime $affectedUserRegisteredAt = null;
  716. public function setAffectedUserRegisteredAt(?DateTime $affectedUserRegisteredAt): void
  717. {
  718. $this->affectedUserRegisteredAt = $affectedUserRegisteredAt;
  719. }
  720. public function getAffectedUserRegisteredAt(): ?DateTime
  721. {
  722. return $this->affectedUserRegisteredAt;
  723. }
  724. /**
  725. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  726. * if a user is deleted.
  727. */
  728. #[ORM\Column(
  729. type : Types::GUID,
  730. nullable: true
  731. )]
  732. private ?string $relatedRecurrentJobId = null;
  733. public function setRelatedRecurrentJobId(?string $relatedRecurrentJobId = null): void
  734. {
  735. GuidUtility::validOrThrow($relatedRecurrentJobId, true);
  736. $this->relatedRecurrentJobId = $relatedRecurrentJobId;
  737. }
  738. public function getRelatedRecurrentJobId(): ?string
  739. {
  740. return $this->relatedRecurrentJobId;
  741. }
  742. /**
  743. * We don't make this a foreign key on purpose, we don't need the integrity and don't want to delete event data
  744. * if a user is deleted.
  745. */
  746. #[ORM\Column(
  747. type : Types::GUID,
  748. nullable: true
  749. )]
  750. private ?string $relatedWantedJobId = null;
  751. public function setRelatedWantedJobId(?string $relatedWantedJobId = null): void
  752. {
  753. GuidUtility::validOrThrow($relatedWantedJobId, true);
  754. $this->relatedWantedJobId = $relatedWantedJobId;
  755. }
  756. public function getRelatedWantedJobId(): ?string
  757. {
  758. return $this->relatedWantedJobId;
  759. }
  760. #[ORM\Column(
  761. type : Types::TEXT,
  762. length : 4096,
  763. nullable: true
  764. )]
  765. private ?string $additionalData;
  766. public function getAdditionalData(): ?string
  767. {
  768. return $this->additionalData;
  769. }
  770. #[ORM\Column(
  771. type : Types::TEXT,
  772. length : 256,
  773. nullable: true
  774. )]
  775. private ?string $requestId = null;
  776. public function setRequestId(?string $requestId = null): void
  777. {
  778. $this->requestId = $requestId;
  779. }
  780. public function getRequestId(): ?string
  781. {
  782. return $this->requestId;
  783. }
  784. #[ORM\Column(
  785. type : Types::TEXT,
  786. length : 256,
  787. nullable: true
  788. )]
  789. private ?string $sessionId = null;
  790. public function setSessionId(?string $sessionId = null): void
  791. {
  792. $this->sessionId = $sessionId;
  793. }
  794. public function getSessionId(): ?string
  795. {
  796. return $this->sessionId;
  797. }
  798. #[ORM\Column(
  799. type : Types::TEXT,
  800. length : 64,
  801. nullable: true
  802. )]
  803. private ?string $clientId = null;
  804. public function setClientId(?string $clientId = null): void
  805. {
  806. $this->clientId = $clientId;
  807. }
  808. public function getClientId(): ?string
  809. {
  810. return $this->clientId;
  811. }
  812. #[ORM\Column(
  813. type : Types::BOOLEAN,
  814. nullable: false
  815. )]
  816. private bool $isMeerbuschOfficeRequest = false;
  817. public function getIsMeerbuschOfficeRequest(): bool
  818. {
  819. return $this->isMeerbuschOfficeRequest;
  820. }
  821. public function setIsMeerbuschOfficeRequest(bool $isMeerbuschOfficeRequest): void
  822. {
  823. $this->isMeerbuschOfficeRequest = $isMeerbuschOfficeRequest;
  824. }
  825. #[ORM\Column(
  826. type : Types::BOOLEAN,
  827. nullable: true
  828. )]
  829. private ?bool $isProbablyBotRequest = null;
  830. public function getIsProbablyBotRequest(): ?bool
  831. {
  832. return $this->isProbablyBotRequest;
  833. }
  834. public function setIsProbablyBotRequest(?bool $isProbablyBotRequest): void
  835. {
  836. $this->isProbablyBotRequest = $isProbablyBotRequest;
  837. }
  838. }