$this->externalId, 'title' => $this->title, 'company' => $this->company, 'description' => $this->description, 'location' => $this->location, 'salary_min' => $this->salaryMin, 'salary_max' => $this->salaryMax, 'salary_currency' => $this->salaryCurrency, 'job_type' => $this->jobType, 'source_url' => $this->sourceUrl, 'apply_url' => $this->applyUrl, 'posted_at' => $this->postedAt, 'expires_at' => $this->expiresAt, 'remote_allowed' => $this->remoteAllowed, 'experience_level' => $this->experienceLevel, ]; } /** * Generate a fingerprint for deduplication */ public function generateFingerprint(): string { $data = strtolower(trim($this->title . '|' . $this->company . '|' . $this->location)); return hash('sha256', $data); } }