toArray(); } else { $data = is_array($release) ? $release : (array) $release; } return new self( releaseId: (int) ($data['id'] ?? 0), searchName: $data['searchname'] ?? '', groupsId: (int) ($data['groups_id'] ?? 0), categoriesId: (int) ($data['categories_id'] ?? 0), videosId: (int) ($data['videos_id'] ?? 0), tvEpisodesId: (int) ($data['tv_episodes_id'] ?? 0), guid: $data['guid'] ?? null, leftGuid: $data['leftguid'] ?? null, ); } /** * Check if the release name matches a pattern. */ public function matchesPattern(string $pattern): bool { return (bool) preg_match($pattern, $this->searchName); } }