src/Domain/Entity/TripMapPoint.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Domain\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Get;
  5. use App\Domain\Entity\Behavior\Identifiable;
  6. use App\Domain\Entity\PointOfInterest\Revision;
  7. use DateTime;
  8. use Gedmo\Timestampable\Traits\Timestampable;
  9. /**
  10.  * Class TripMapPoint
  11.  *
  12.  * @package App\Domain\Entity
  13.  */
  14. #[ApiResource(
  15.     operations: [
  16.         new Get(),
  17.     ],
  18.     normalizationContext: ['groups' => ['trip_map_point_read']],
  19.     denormalizationContext: ['groups' => ['trip_map_point_write']]
  20. )]
  21. class TripMapPoint
  22. {
  23.     use Identifiable;
  24.     use Timestampable;
  25.     public function __construct(
  26.         public ?string $placeId,
  27.         public int $position,
  28.         public string $name,
  29.         public array $location,
  30.         public float $distance,
  31.         public int $duration,
  32.         public ?Revision $revisionInitial,
  33.         public ?PointOfInterest $pointOfInterest,
  34.         public ?string $remoteId null,
  35.         public ?string $recoRemoteId null,
  36.         public ?DateTime $zhistUpdate null,
  37.     ) {}
  38.     public function __clone()
  39.     {
  40.         $this->id null;
  41.         $this->uuid null;
  42.     }
  43.     public function getDurationString(): string
  44.     {
  45.         if ($this->duration <= 0) {
  46.             return '0h 0min';
  47.         }
  48.         $timeInMinutes floor($this->duration 60);
  49.         $hours floor($timeInMinutes 60);
  50.         $minutes = ($timeInMinutes 60);
  51.         return "{$hours}{$minutes}min";
  52.     }
  53. }