<?php
namespace AdminBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
#[ORM\Table(name: 'unassigned_bookings_driver_requests')]
#[ORM\Entity(repositoryClass: \AdminBundle\Repository\UnassignedBookingsDriverRequestsRepository::class)]
#[ORM\HasLifecycleCallbacks]
class UnassignedBookingsDriverRequests extends BaseEntity
{
const STATUS_WAITING = 0;
const STATUS_APPROVED = 1;
const STATUS_REJECTED = 2;
const STATUS_DEALLOCATED = 3;
/**
* @var integer
*/
#[ORM\Column(name: 'id', type: 'integer', nullable: false)]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
protected $id;
/**
* @var Booking
*/
#[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
#[ORM\ManyToOne(targetEntity: \Booking::class, inversedBy: 'unassignedDriverRequests', cascade: ['all'])]
protected $booking;
/**
* @var string
*/
#[ORM\Column(name: 'linked_booking', type: 'string', length: 100, nullable: true)]
protected $linkedBooking;
/**
* @var string
*/
#[ORM\Column(name: 'main_booking', type: 'string', length: 100, nullable: true)]
protected $mainBooking;
/**
* @var string
*/
#[ORM\Column(name: 'verified', type: 'boolean', nullable: true, options: ['default' => 0])]
protected $verified = false;
/**
* @var Driver
*/
#[ORM\JoinColumn(name: 'driver_id', referencedColumnName: 'id')]
#[ORM\ManyToOne(targetEntity: \Driver::class, inversedBy: 'unassignedBookingsRequests', cascade: ['all'])]
protected $driver;
/**
* @var \DateTime
*/
#[ORM\Column(name: 'date', type: 'date')]
protected $date;
/**
* @var \DateTime
*/
#[ORM\Column(name: 'updated', type: 'datetime', nullable: true)]
protected $updated;
/**
* @var \DateTime
*/
#[ORM\Column(name: 'created', type: 'datetime', nullable: true)]
protected $created;
/**
* @var integer
*/
#[ORM\Column(name: 'status', type: 'integer')]
protected $status = self::STATUS_WAITING;
public function __construct()
{
$this->date = new \DateTime();
$this->updated = new \DateTime();
$this->created = new \DateTime();
$this->status = self::STATUS_WAITING;
}
/**
* @return Booking
*/
public function getBooking()
{
return $this->booking;
}
/**
* @param Booking $booking
*/
public function setBooking($booking)
{
$this->booking = $booking;
}
/**
* @return \DateTime
*/
public function getDate()
{
return $this->date;
}
/**
* @param \DateTime $date
*/
public function setDate($date)
{
$this->date = $date;
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return Driver
*/
public function getDriver()
{
return $this->driver;
}
/**
* @param Driver $driver
*/
public function setDriver($driver)
{
$this->driver = $driver;
}
/**
* @return int
*/
public function getStatus()
{
return $this->status;
}
/**
* @param int $status
*/
public function setStatus($status)
{
$this->status = $status;
}
/**
* @return \DateTime
*/
public function getUpdated()
{
return $this->updated;
}
/**
* @param \DateTime $updated
*/
public function setUpdated(\DateTime $updated)
{
$this->updated = $updated;
}
/**
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* @param \DateTime $created
*/
public function setCreated(\DateTime $created)
{
$this->created = $created;
}
#[ORM\PrePersist]
#[ORM\PreUpdate]
public function updatedTimestamps()
{
$this->setUpdated(new \DateTime());
}
/**
* @return string
*/
public function getLinkedBooking()
{
return $this->linkedBooking;
}
/**
* @param string $linkedBooking
*/
public function setLinkedBooking($linkedBooking)
{
$this->linkedBooking = $linkedBooking;
}
/**
* @return string
*/
public function getVerified()
{
return $this->verified;
}
/**
* @param string $verified
*/
public function setVerified($verified)
{
$this->verified = $verified;
}
/**
* @return string
*/
public function getMainBooking()
{
return $this->mainBooking;
}
/**
* @param string $mainBooking
*/
public function setMainBooking($mainBooking)
{
$this->mainBooking = $mainBooking;
}
}