session = $session; $this->dt = $dt ?? new \DateTime('now'); } /** * Get id. * * @return int Account id * * @since 1.0.0 */ public function getId() : int { return $this->id; } /** * Get the dt data * * @return \DateTime * * @since 1.0.0 */ public function getDatetime() : \DateTime { return $this->dt; } /** * Get the session element status * * @return int * * @since 1.0.0 */ public function getStatus() : int { return $this->status; } /** * Set the session element status * * @param int $status Session element status * * @return void * * @since 1.0.0 */ public function setStatus(int $status) : void { $this->status = $status; } /** * Get session this element is for * * @return int|Session * * @since 1.0.0 */ public function getSession() { return $this->session; } /** * {@inheritdoc} */ public function toArray() : array { return [ 'id' => $this->id, 'status' => $this->status, 'dt' => $this->dt, 'session' => \is_int($this->session) ? $this->session : $this->session->getId(), ]; } /** * {@inheritdoc} */ public function __toString() { return (string) \json_encode($this->toArray()); } /** * {@inheritdoc} */ public function jsonSerialize() { return $this->toArray(); } }