src/Entity/Fleet/Driver.php line 23
<?php
namespace App\Entity\Fleet;
use App\Doctrine\Type\Fleet\OperatingStatus;
use App\Entity\Common as Common;
use App\Entity\Common\Company;
use App\Validator\IsValidEnum\IsValidEnum;
use DateTimeInterface;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Uid\Ulid;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Table(name: 'fleet_driver')]
#[ORM\Index(columns: ['employer_id'], name: 'fleet_driver_employer_id_idx')]
#[ORM\Index(columns: ['created_by'], name: 'fleet_driver_created_by_idx')]
#[ORM\Index(columns: ['updated_by'], name: 'fleet_driver_updated_by_idx')]
#[ORM\UniqueConstraint(name: 'fleet_driver_identifier_key', columns: ['identifier'])]
#[ORM\Entity]
#[UniqueEntity(fields: ['identifier'])]
class Driver
{
use Common\Blameable;
use Common\Trackable;
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
#[ORM\SequenceGenerator(sequenceName: 'fleet_driver_id_seq')]
#[ORM\Column(type: Types::INTEGER)]
private ?int $id = null;
#[Assert\Ulid]
#[Assert\NotNull]
#[ORM\Column(type: 'ulid', unique: true)]
private ?Ulid $identifier = null;
#[ORM\ManyToOne(targetEntity: Company::class)]
#[ORM\JoinColumn(name: 'employer_id')]
private ?Company $employer = null;
#[Assert\NotBlank]
#[Assert\Type(type: Types::STRING)]
#[ORM\Column(type: Types::STRING)]
private ?string $lastName = null;
#[Assert\Type(type: Types::STRING)]
#[ORM\Column(type: Types::STRING, nullable: true)]
private ?string $firstName = null;
#[Assert\Type(type: DateTimeInterface::class)]
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
private ?DateTimeInterface $bornOn = null;
#[Assert\NotBlank]
#[Assert\Type(type: Types::STRING)]
#[ORM\Column(type: Types::STRING)]
private ?string $countryOfOperation = null;
#[Assert\NotNull]
#[IsValidEnum(enum: OperatingStatus::class)]
#[ORM\Column(type: Types::STRING, nullable: false, enumType: OperatingStatus::class, options: ['default' => 'OPERATIONAL'])]
private ?OperatingStatus $status = OperatingStatus::OPERATIONAL;
public function __construct()
{
$this->identifier = new Ulid();
}
public function getId(): ?int
{
return $this->id;
}
public function getIdentifier(): ?Ulid
{
return $this->identifier;
}
public function setIdentifier($identifier): self
{
$this->identifier = $identifier;
return $this;
}
public function getEmployer(): ?Company
{
return $this->employer;
}
public function setEmployer(Company $employer): self
{
$this->employer = $employer;
return $this;
}
public function getLastName(): ?string
{
return $this->lastName;
}
public function setLastName(?string $lastName): self
{
$this->lastName = $lastName;
return $this;
}
public function getFirstName(): ?string
{
return $this->firstName;
}
public function setFirstName(?string $firstName): self
{
$this->firstName = $firstName;
return $this;
}
public function getBornOn(): ?DateTimeInterface
{
return $this->bornOn;
}
public function setBornOn(?DateTimeInterface $bornOn): self
{
$this->bornOn = $bornOn;
return $this;
}
public function getCountryOfOperation(): ?string
{
return $this->countryOfOperation;
}
public function setCountryOfOperation(?string $countryOfOperation): self
{
$this->countryOfOperation = $countryOfOperation;
return $this;
}
public function getStatus(): ?OperatingStatus
{
return $this->status;
}
public function setStatus(?OperatingStatus $status): self
{
$this->status = $status;
return $this;
}
}