User::class, 'place_in_challenge' => PlaceInChallenge::class]; private ?User $user = null; private ?int $userId = null; private ?PlaceInChallenge $placeInChallenge = null; private ?int $placeInChallengeId = null; private Position $position; private int $score = 0; private int $distance = 0; private int $timeSpent = 0; public function __construct() { $this->position = new Position(0.0, 0.0); } public function setUser(User $user): void { $this->user = $user; } public function setUserId(int $userId): void { $this->userId = $userId; } public function setPlaceInChallenge(PlaceInChallenge $placeInChallenge): void { $this->placeInChallenge = $placeInChallenge; } public function setPlaceInChallengeId(int $placeInChallengeId): void { $this->placeInChallengeId = $placeInChallengeId; } public function setPosition(Position $position): void { $this->position = $position; } public function setLat(float $lat): void { $this->position->setLat($lat); } public function setLng(float $lng): void { $this->position->setLng($lng); } public function setScore(int $score): void { $this->score = $score; } public function setDistance(int $distance): void { $this->distance = $distance; } public function setTimeSpent(int $timeSpent): void { $this->timeSpent = $timeSpent; } public function getUser(): ?User { return $this->user; } public function getUserId(): ?int { return $this->userId; } public function getPlaceInChallenge(): ?PlaceInChallenge { return $this->placeInChallenge; } public function getPlaceInChallengeId(): ?int { return $this->placeInChallengeId; } public function getPosition(): Position { return $this->position; } public function getLat(): float { return $this->position->getLat(); } public function getLng(): float { return $this->position->getLng(); } public function getScore(): int { return $this->score; } public function getDistance(): int { return $this->distance; } public function getTimeSpent(): ?int { return $this->timeSpent; } }