['site' => ['login' => true]]]; public function __construct(string $token, array $data) { $this->token = $token; $this->email = $data['email']; $this->created_by = $data['created_by']; $this->created_timestamp = $data['created_timestamp'] ?? time(); $this->expiration_timestamp = $data['expiration_timestamp'] ?? time() + 86400; // 1 day if (isset($data['account'])) { $this->account = $data['account']; } } public function isExpired(): bool { return ($this->expiration_timestamp ?? 0) < time(); } public function toArray(): array { return [ 'email' => $this->email, 'created_by' => $this->created_by, 'created_timestamp' => $this->created_timestamp, 'expiration_timestamp' => $this->expiration_timestamp, 'account' => $this->account, ]; } }