<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=PaymentRepository::class)
* @ORM\Table(name="payment")
*/
class Payment
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\Column(type="integer")
* @Assert\Positive(message="The amount must be positive.")
*/
private int $amount;
/**
* @ORM\Column(type="string", length=3)
* @Assert\Length(
* min=3,
* max=3,
* exactMessage="Currency must be a 3-letter ISO code."
* )
*/
private string $currency;
/**
* @ORM\Column(type="string", length=50)
* @Assert\NotBlank()
*/
private string $status;
/**
* @ORM\Column(type="datetime")
*/
private \DateTimeInterface $createdAt;
/**
* @ORM\ManyToOne(targetEntity=Booking::class, inversedBy="payments")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private Booking $booking;
public function __construct(Booking $booking)
{
$this->booking = $booking;
$this->createdAt = new \DateTimeImmutable('now');
}
public function getId(): ?int
{
return $this->id;
}
public function getAmount(): int
{
return $this->amount;
}
public function setAmount(int $amount): self
{
$this->amount = $amount;
return $this;
}
public function getCurrency(): string
{
return $this->currency;
}
public function setCurrency(string $currency): self
{
$this->currency = $currency;
return $this;
}
public function getStatus(): string
{
return $this->status;
}
public function setStatus(string $status): self
{
$this->status = $status;
return $this;
}
public function getCreatedAt(): \DateTimeInterface
{
return $this->createdAt;
}
public function getBooking(): Booking
{
return $this->booking;
}
public function setBooking(Booking $booking): self
{
$this->booking = $booking;
return $this;
}
}