19 parent::__construct();
21 $this->collabRepository = CollabRepository::getInstance();
26 $initiatorId = (int)(
$params[
'INITIATED_BY_USER_ID'] ?? 0);
27 $collaberId = (int)(
$params[
'USER_ID'] ?? 0);
28 $groupId = (int)(
$params[
'GROUP_ID'] ?? 0);
30 if ($initiatorId <= 0 || $collaberId <= 0 || $groupId <= 0)
35 if (!$this->isFirstMemberAlreadyAdded($groupId))
37 $this->addJobsAfterFirstCollaberAcceptInvitation($groupId, $initiatorId, $collaberId);
40 $this->deleteJobsAfterCollaberAcceptingInvitation($groupId);
45 private function isFirstMemberAlreadyAdded(
int $collabId): bool
47 $firstAddedData = $this->collabRepository->getFirstAddedMemberData($collabId);
49 return (
bool)$firstAddedData?->isFirstMemberAdded;
52 private function addJobsAfterFirstCollaberAcceptInvitation(
int $collabId,
int $initiatorId,
int $collaberId): void
54 $jobCollection =
new JobCollection(
55 JobFactory::create($collabId, $initiatorId, Type::StartChattingOneDay->value),
56 JobFactory::create($collabId, $initiatorId, Type::CreatedTaskOrMeetingOrFileThreeDays->value),
57 JobFactory::create($collabId, $collaberId, Type::CreatedTaskOrMeetingOrFileThreeDays->value),
60 $this->queueService->add($jobCollection);
63 private function deleteJobsAfterCollaberAcceptingInvitation(
int $collabId): void
65 $this->queueService->deleteByFilter([
66 'COLLAB_IDS' => [$collabId],
68 Type::CollaberNotAcceptInvitationOneDay->value,
69 Type::CollaberNotAcceptInvitationTwoDays->value,