| 
<?php
 declare(strict_types=1);
 
 namespace MySQLReplication\Event\DTO;
 
 use MySQLReplication\Definitions\ConstEventsNames;
 use MySQLReplication\Event\EventInfo;
 
 class RotateDTO extends EventDTO
 {
 private ConstEventsNames $type = ConstEventsNames::ROTATE;
 
 public function __construct(
 EventInfo $eventInfo,
 public readonly string $position,
 public readonly string $nextBinlog
 ) {
 parent::__construct($eventInfo);
 }
 
 public function __toString(): string
 {
 return PHP_EOL .
 '=== Event ' . $this->getType() . ' === ' . PHP_EOL .
 'Date: ' . $this->eventInfo->getDateTime() . PHP_EOL .
 'Log position: ' . $this->eventInfo->pos . PHP_EOL .
 'Event size: ' . $this->eventInfo->size . PHP_EOL .
 'Binlog position: ' . $this->position . PHP_EOL .
 'Binlog filename: ' . $this->nextBinlog . PHP_EOL;
 }
 
 public function getType(): string
 {
 return $this->type->value;
 }
 
 public function jsonSerialize(): array
 {
 return get_object_vars($this);
 }
 }
 
 |