diff --git a/app/Events/SponsorServices/SummitSponsorCreatedEventDTO.php b/app/Events/SponsorServices/SummitSponsorCreatedEventDTO.php index f70dcf475..4cee13211 100644 --- a/app/Events/SponsorServices/SummitSponsorCreatedEventDTO.php +++ b/app/Events/SponsorServices/SummitSponsorCreatedEventDTO.php @@ -16,22 +16,34 @@ class SummitSponsorCreatedEventDTO { private int $id; + + private int $company_id; private string $company_name; + private int $summit_id; + + public function __construct( int $id, + int $company_id, string $company_name, + int $summit_id, + ) { $this->id = $id; + $this->company_id = $company_id; $this->company_name = $company_name; + $this->summit_id = $summit_id; } public static function fromSummitSponsor($sponsor): self { return new self( $sponsor->getId(), - $sponsor->getCompany()->getName() + $sponsor->getCompanyId(), + $sponsor->getCompany()->getName(), + $sponsor->getSummitId() ); } @@ -39,7 +51,9 @@ public function serialize(): array { return [ 'id' => $this->id, + 'summit_id' => $this->summit_id, + 'company_id' => $this->company_id, 'company_name' => $this->company_name ]; } -} \ No newline at end of file +} diff --git a/app/Events/SponsorServices/SummitSponsorshipAddOnCreatedEventDTO.php b/app/Events/SponsorServices/SummitSponsorshipAddOnCreatedEventDTO.php index 8973b3571..fc02111f8 100644 --- a/app/Events/SponsorServices/SummitSponsorshipAddOnCreatedEventDTO.php +++ b/app/Events/SponsorServices/SummitSponsorshipAddOnCreatedEventDTO.php @@ -13,6 +13,8 @@ * limitations under the License. **/ +use models\summit\SummitSponsorshipAddOn; + class SummitSponsorshipAddOnCreatedEventDTO { private int $id; @@ -20,26 +22,36 @@ class SummitSponsorshipAddOnCreatedEventDTO private string $type; private string $name; + private int $sponsor_id; + + private int $summit_id; + public function __construct( int $id, int $sponsorship_id, string $type, - string $name + string $name, + int $sponsor_id, + int $summit_id, ) { $this->id = $id; $this->sponsorship_id = $sponsorship_id; $this->type = $type; $this->name = $name; + $this->sponsor_id = $sponsor_id; + $this->summit_id = $summit_id; } - public static function fromSponsorshipAddOn($add_on): self + public static function fromSponsorshipAddOn(SummitSponsorshipAddOn $add_on): self { return new self( $add_on->getId(), $add_on->getSponsorship()->getId(), $add_on->getType(), - $add_on->getName() + $add_on->getName(), + $add_on->getSponsorship()->getSponsor()->getId(), + $add_on->getSponsorship()->getSponsor()->getSummitId(), ); } @@ -50,6 +62,8 @@ public function serialize(): array 'type' => $this->type, 'name' => $this->name, 'sponsorship_id' => $this->sponsorship_id, + 'sponsor_id' => $this->sponsor_id, + 'summit_id' => $this->summit_id, ]; } -} \ No newline at end of file +} diff --git a/app/Events/SponsorServices/SummitSponsorshipCreatedEventDTO.php b/app/Events/SponsorServices/SummitSponsorshipCreatedEventDTO.php index 6d550bbd3..c078f3130 100644 --- a/app/Events/SponsorServices/SummitSponsorshipCreatedEventDTO.php +++ b/app/Events/SponsorServices/SummitSponsorshipCreatedEventDTO.php @@ -13,6 +13,8 @@ * limitations under the License. **/ +use models\summit\SummitSponsorship; + class SummitSponsorshipCreatedEventDTO { private int $id; @@ -20,20 +22,24 @@ class SummitSponsorshipCreatedEventDTO private int $type_id; private string $type_name; + private int $summit_id; + public function __construct( int $id, int $sponsor_id, int $type_id, - string $type_name + string $type_name, + int $summit_id, ) { $this->id = $id; $this->sponsor_id = $sponsor_id; $this->type_id = $type_id; $this->type_name = $type_name; + $this->summit_id = $summit_id; } - public static function fromSponsorship($sponsorship): self + public static function fromSponsorship(SummitSponsorship $sponsorship): self { $sponsorship_type = $sponsorship->getType()->getType(); @@ -41,7 +47,8 @@ public static function fromSponsorship($sponsorship): self $sponsorship->getId(), $sponsorship->getSponsor()->getId(), $sponsorship_type->getId(), - $sponsorship_type->getName() + $sponsorship_type->getName(), + $sponsorship->getSponsor()->getSummitId() ); } @@ -52,6 +59,7 @@ public function serialize(): array 'sponsor_id' => $this->sponsor_id, 'type_id' => $this->type_id, 'type_name' => $this->type_name, + 'summit_id' => $this->summit_id, ]; } -} \ No newline at end of file +} diff --git a/app/Services/Model/Imp/SummitSponsorshipService.php b/app/Services/Model/Imp/SummitSponsorshipService.php index 936be34ad..0c0c1189d 100644 --- a/app/Services/Model/Imp/SummitSponsorshipService.php +++ b/app/Services/Model/Imp/SummitSponsorshipService.php @@ -13,6 +13,7 @@ **/ use App\Events\SponsorServices\SponsorDomainEvents; +use App\Events\SponsorServices\SummitSponsorCreatedEventDTO; use App\Events\SponsorServices\SummitSponsorshipAddOnCreatedEventDTO; use App\Events\SponsorServices\SummitSponsorshipCreatedEventDTO; use App\Events\SponsorServices\DeletedEventDTO; @@ -51,6 +52,10 @@ public function addSponsorships(Summit $summit, int $sponsor_id, array $summit_s $summit_sponsor->addSponsorship($sponsorship); $res[] = $sponsorship; } + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorCreatedEventDTO::fromSummitSponsor($summit_sponsor)->serialize(), + SponsorDomainEvents::SponsorUpdated); + return $res; }); @@ -80,6 +85,10 @@ public function removeSponsorship(Summit $summit, int $sponsor_id, int $sponsors $summit_sponsor->removeSponsorship($sponsorship); + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorCreatedEventDTO::fromSummitSponsor($summit_sponsor)->serialize(), + SponsorDomainEvents::SponsorUpdated); + PublishSponsorServiceDomainEventsJob::dispatch( DeletedEventDTO::fromEntity($sponsorship)->serialize(), SponsorDomainEvents::SponsorshipRemoved); @@ -103,9 +112,20 @@ public function addNewAddOn(Summit $summit, int $sponsor_id, int $sponsorship_id $add_on = SummitSponsorshipAddOnFactory::build($payload); $sponsorship->addAddOn($add_on); + + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorCreatedEventDTO::fromSummitSponsor($summit_sponsor)->serialize(), + SponsorDomainEvents::SponsorUpdated); + + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorshipCreatedEventDTO::fromSponsorship($sponsorship)->serialize(), + SponsorDomainEvents::SponsorshipUpdated); + return $add_on; }); + + PublishSponsorServiceDomainEventsJob::dispatch( SummitSponsorshipAddOnCreatedEventDTO::fromSponsorshipAddOn($add_on)->serialize(), SponsorDomainEvents::SponsorshipAddOnCreated); @@ -147,6 +167,14 @@ public function updateAddOn(Summit $summit, int $sponsor_id, int $sponsorship_id $res = SummitSponsorshipAddOnFactory::populate($add_on, $payload); + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorCreatedEventDTO::fromSummitSponsor($summit_sponsor)->serialize(), + SponsorDomainEvents::SponsorUpdated); + + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorshipCreatedEventDTO::fromSponsorship($sponsorship)->serialize(), + SponsorDomainEvents::SponsorshipUpdated); + PublishSponsorServiceDomainEventsJob::dispatch( SummitSponsorshipAddOnCreatedEventDTO::fromSponsorshipAddOn($res)->serialize(), SponsorDomainEvents::SponsorshipAddOnUpdated); @@ -177,9 +205,17 @@ public function removeAddOn(Summit $summit, int $sponsor_id, int $sponsorship_id $sponsorship->removeAddOn($add_on); + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorCreatedEventDTO::fromSummitSponsor($summit_sponsor)->serialize(), + SponsorDomainEvents::SponsorUpdated); + + PublishSponsorServiceDomainEventsJob::dispatch( + SummitSponsorshipCreatedEventDTO::fromSponsorship($sponsorship)->serialize(), + SponsorDomainEvents::SponsorshipUpdated); + PublishSponsorServiceDomainEventsJob::dispatch( DeletedEventDTO::fromEntity($add_on)->serialize(), SponsorDomainEvents::SponsorshipAddOnRemoved); }); } -} \ No newline at end of file +}