insert([ 'schedule_id' => $scheduleId, 'token' => $token, 'expires_at' => $expires, 'created_by_user_id' => $createdByUserId, ]); return $id ? $token : null; } /** * Validate token: return row (schedule_id, expires_at) if valid and not expired; null otherwise. */ public function validateToken(string $token): ?array { $row = $this->where('token', $token)->first(); if (!$row || !is_array($row)) { return null; } $expiresAt = $row['expires_at'] ?? null; if (!$expiresAt || strtotime($expiresAt) < time()) { return null; } return [ 'schedule_id' => (int) $row['schedule_id'], 'expires_at' => $row['expires_at'], ]; } }