<?phpnamespace App\Entity\Bus;use App\Entity\User;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;use JMS\Serializer\Annotation as JMS;/** * @ORM\Entity(repositoryClass="App\Repository\Bus\BookingSeatRepository") * @ORM\Table(name="bus_booking_seat") */class BookingSeat { /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") */ private $id; /** * @Assert\NotBlank(message="Please enter passenger name") * @ORM\Column(type="string") */ private $passenger; /** * @Assert\NotBlank(message="Please enter phone number") * @ORM\Column(type="string") */ private $phone; /** * @Assert\NotBlank(message="Please select from") * @var Stop|null * @ORM\ManyToOne(targetEntity="App\Entity\Bus\Stop") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="origin", referencedColumnName="id") * }) * @JMS\MaxDepth(2) */ private ?Stop $origin = null; /** * @Assert\NotBlank(message="Please enter destination") * @var Stop|null * @ORM\ManyToOne(targetEntity="App\Entity\Bus\Stop") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="destination", referencedColumnName="id") * }) * * @JMS\MaxDepth(2) */ private ?Stop $destination = null; /** * @Assert\NotBlank(message="Please select seat") * @var Seat|null * @ORM\ManyToOne(targetEntity="App\Entity\Bus\Seat") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="seat_id", referencedColumnName="id", nullable=true) * }) * @JMS\MaxDepth(2) */ private ?Seat $seat = null; /** * @ORM\Column(type="time") * @JMS\Type("DateTime<'H:i'>") */ private ?\DateTimeInterface $departureTime = null; /** * @ORM\Column(type="time") * @JMS\Type("DateTime<'H:i'>") */ private ?\DateTimeInterface $eta = null; /** * @Assert\NotBlank(message="Please select amount") * @ORM\Column(type="integer") */ private $amount; /** * @Assert\NotBlank(message="Please enter payment method") * @ORM\Column(type="string") */ private $paidVia; /** * @var User * @ORM\ManyToOne(targetEntity="App\Entity\User") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="created_by", referencedColumnName="id") * }) * @JMS\MaxDepth(1) */ private $createdBy; /** * Groups this seat with the other seats bought in the same booking. * Nullable: seats booked through the counter flow (one seat per form * submission, no grouping concept) will never have one — only seats * created through the online booking flow set this. * * @var Booking|null * @ORM\ManyToOne(targetEntity="App\Entity\Bus\Booking") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="booking_id", referencedColumnName="id", nullable=true) * }) * @JMS\MaxDepth(1) */ private $booking; /** * @ORM\Column(type="datetime") */ private $createdAt; /** * @return mixed */ public function getId() { return $this->id; } /** * @param mixed $id */ public function setId($id): void { $this->id = $id; } /** * @return Stop|null */ public function getOrigin(): ?Stop { return $this->origin ?? null; } /** * @param Stop|null $origin */ public function setOrigin(?Stop $origin): void { $this->origin = $origin; } /** * @return Stop|null */ public function getDestination(): ?Stop { return $this->destination ?? null; } /** * @param Stop|null $destination */ public function setDestination(?Stop $destination): void { $this->destination = $destination; } /** * @return Seat|null */ public function getSeat(): ?Seat { return $this->seat ?? null; } /** * @param Seat|null $seat */ public function setSeat(?Seat $seat): void { $this->seat = $seat; } /** * @return mixed */ public function getAmount() { return $this->amount; } /** * @param mixed $amount */ public function setAmount($amount): void { $this->amount = $amount; } /** * @return mixed */ public function getPaidVia() { return $this->paidVia; } /** * @param mixed $paidVia */ public function setPaidVia($paidVia): void { $this->paidVia = $paidVia; } /** * @return User */ public function getCreatedBy(): User { return $this->createdBy; } /** * @return Booking|null */ public function getBooking(): ?Booking { return $this->booking; } /** * @param Booking|null $booking */ public function setBooking(?Booking $booking): void { $this->booking = $booking; } /** * @param User $createdBy */ public function setCreatedBy(User $createdBy): void { $this->createdBy = $createdBy; } /** * @return mixed */ public function getCreatedAt() { return $this->createdAt; } /** * @param mixed $createdAt */ public function setCreatedAt($createdAt): void { $this->createdAt = $createdAt; } /** * @return mixed */ public function getPassenger() { return $this->passenger; } /** * @param mixed $passenger */ public function setPassenger($passenger): void { $this->passenger = $passenger; } /** * @return mixed */ public function getPhone() { return $this->phone; } /** * @param mixed $phone */ public function setPhone($phone): void { $this->phone = $phone; } public function getDepartureTime(): ?\DateTimeInterface { return $this->departureTime ?? null; } public function setDepartureTime(?\DateTimeInterface $departureTime): void { $this->departureTime = $departureTime; } public function getEta(): ?\DateTimeInterface { return $this->eta ?? null; } public function setEta(?\DateTimeInterface $eta): void { $this->eta = $eta; }}