uuid = Uuid::v4()->toRfc4122(); $this->item = $item; $this->address = $address; $this->createdAt = time(); $this->updatedAt = time(); $this->assignTenantPair($item->getSection()->getEntityType(), $item->getSection()->getEntityId()); } public function getId(): ?int { return $this->id; } public function getUuid(): string { return $this->uuid; } public function getItem(): ServiceItem { return $this->item; } public function getAddress(): DoctorAddress { return $this->address; } public function getSoloDurationMinutes(): ?int { return $this->soloDurationMinutes; } public function getAdditionalDurationMinutes(): ?int { return $this->additionalDurationMinutes; } public function setSoloDurationMinutes(?int $v): self { $this->soloDurationMinutes = $v; $this->touch(); return $this; } public function setAdditionalDurationMinutes(?int $v): self { $this->additionalDurationMinutes = $v; $this->touch(); return $this; } private function touch(): void { $this->updatedAt = time(); } public function toArray(): array { return [ 'uuid' => $this->uuid, 'item_uuid' => $this->item->getUuid(), 'address_uuid' => $this->address->getUuid(), 'address_name' => $this->address->getName(), 'solo_duration_minutes' => $this->soloDurationMinutes, 'additional_duration_minutes' => $this->additionalDurationMinutes, ]; } }