<?php
namespace App\Entity\Location\Subway;
use App\Entity\Location\City;
use App\Repository\StationRepository;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\UniqueConstraint;
#[ORM\Table(name: 'city_subway_lines')]
#[UniqueConstraint(name: 'subway_lines_unique_city_name', columns: ['city_id', 'name'])]
#[ORM\Entity(repositoryClass: StationRepository::class)]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE', region: 'geoposition')]
class Line
{
#[ORM\Id]
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\GeneratedValue(strategy: 'AUTO')]
protected int $id;
#[ORM\JoinColumn(name: 'city_id', referencedColumnName: 'id')]
#[ORM\ManyToOne(targetEntity: City::class)]
#[ORM\Cache(usage: 'READ_ONLY', region: 'geoposition')]
protected City $city;
#[ORM\Column(name: 'name', type: 'string')]
protected string $name;
#[ORM\Column(name: 'color', type: 'string')]
protected string $color;
public function __construct(
City $city, string $name, string $color
)
{
$this->city = $city;
$this->name = $name;
$this->color = $color;
}
public function id(): int
{
return $this->id;
}
public function name(): string
{
return $this->name;
}
public function color(): string
{
return $this->color;
}
}