vendor/croisiland/common-bundle/src/Entity/Itinerary/ItinerarySegment.php line 15

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Croisiland\CommonBundle\Entity\Itinerary;
  4. use Crea\ToolsBundle\Entity\LifecycleUserIdentifierTrait;
  5. use Croisiland\CommonBundle\Repository\Itinerary\ItinerarySegmentRepository;
  6. use Croisiland\CommonBundle\Enum\SegmentTypeEnum;
  7. use Doctrine\ORM\Mapping as ORM;
  8. /**
  9. * @ORM\Entity(repositoryClass=ItinerarySegmentRepository::class)
  10. */
  11. class ItinerarySegment implements ItineraryPartInterface, ItinerarySegmentInterface
  12. {
  13. use LifecycleUserIdentifierTrait;
  14. /**
  15. * @ORM\Id
  16. *
  17. * @ORM\GeneratedValue
  18. *
  19. * @ORM\Column(type="integer")
  20. */
  21. private ?int $id = null;
  22. /**
  23. * Le numéro d'ordre de segment doit commencer par 1 (port de départ) car il est utilisé en front pour l'affichage du numéro d'escale
  24. * @ORM\Column(type="integer", nullable=true)
  25. */
  26. private ?int $segmentOrder = null;
  27. /**
  28. * @ORM\Column(type="integer", nullable=true)
  29. */
  30. private ?int $dayNumber = null;
  31. /**
  32. * Delta en jours par rapport à la date de départ de la croisière
  33. *
  34. * @ORM\Column(type="integer", nullable=true)
  35. */
  36. private ?int $dateDelta = null;
  37. /**
  38. * @ORM\Column(type="time", nullable=true)
  39. */
  40. private ?\DateTimeInterface $arrivalTime = null;
  41. /**
  42. * @ORM\Column(type="time", nullable=true)
  43. */
  44. private ?\DateTimeInterface $departureTime = null;
  45. /**
  46. * @ORM\Column(type="text", nullable=true)
  47. */
  48. private ?string $description = null;
  49. /**
  50. * @ORM\ManyToOne(targetEntity=Itinerary::class, inversedBy="itinerarySegments")
  51. */
  52. private ?Itinerary $itinerary = null;
  53. /**
  54. * @ORM\ManyToOne(targetEntity=Stopover::class, inversedBy="itinerarySegments")
  55. * @ORM\JoinColumn(nullable=true)
  56. */
  57. private ?Stopover $stopover = null;
  58. /**
  59. * @ORM\Column(type="string", enumType=SegmentTypeEnum::class)
  60. */
  61. private SegmentTypeEnum $segmentType;
  62. public function getId(): ?int
  63. {
  64. return $this->id;
  65. }
  66. public function getSegmentOrder(): ?int
  67. {
  68. return $this->segmentOrder;
  69. }
  70. public function setSegmentOrder(?int $segmentOrder): self
  71. {
  72. $this->segmentOrder = $segmentOrder;
  73. return $this;
  74. }
  75. public function getDayNumber(): ?int
  76. {
  77. return $this->dayNumber;
  78. }
  79. public function setDayNumber(?int $dayNumber): self
  80. {
  81. $this->dayNumber = $dayNumber;
  82. return $this;
  83. }
  84. public function getDateDelta(): ?int
  85. {
  86. return $this->dateDelta;
  87. }
  88. public function setDateDelta(?int $dateDelta): self
  89. {
  90. $this->dateDelta = $dateDelta;
  91. return $this;
  92. }
  93. public function getArrivalTime(): ?\DateTimeInterface
  94. {
  95. return $this->arrivalTime;
  96. }
  97. public function setArrivalTime(?\DateTimeInterface $arrivalTime): self
  98. {
  99. $this->arrivalTime = $arrivalTime;
  100. return $this;
  101. }
  102. public function getDepartureTime(): ?\DateTimeInterface
  103. {
  104. return $this->departureTime;
  105. }
  106. public function setDepartureTime(?\DateTimeInterface $departureTime): self
  107. {
  108. $this->departureTime = $departureTime;
  109. return $this;
  110. }
  111. public function getDescription(): ?string
  112. {
  113. return $this->description;
  114. }
  115. public function setDescription(?string $description): self
  116. {
  117. $this->description = $description;
  118. return $this;
  119. }
  120. public function getItinerary(): ?Itinerary
  121. {
  122. return $this->itinerary;
  123. }
  124. public function setItinerary(?Itinerary $itinerary): self
  125. {
  126. $this->itinerary = $itinerary;
  127. return $this;
  128. }
  129. public function getStopover(): ?Stopover
  130. {
  131. return $this->stopover;
  132. }
  133. public function setStopover(?Stopover $stopover): self
  134. {
  135. $this->stopover = $stopover;
  136. return $this;
  137. }
  138. public function getArrivalTimeInSeconds(): ?int
  139. {
  140. if (null === $this->getArrivalTime()) {
  141. return null;
  142. }
  143. return ($this->getArrivalTime()->format('H') * 3600) + ($this->getArrivalTime()->format('i') * 60);
  144. }
  145. public function getDepartureTimeInSeconds(): ?int
  146. {
  147. if (null === $this->getDepartureTime()) {
  148. return null;
  149. }
  150. return ($this->getDepartureTime()->format('H') * 3600) + ($this->getDepartureTime()->format('i') * 60);
  151. }
  152. public function getSegmentType(): ?SegmentTypeEnum
  153. {
  154. return $this->segmentType;
  155. }
  156. public function setSegmentType(SegmentTypeEnum $segmentType): self
  157. {
  158. $this->segmentType = $segmentType;
  159. return $this;
  160. }
  161. }