111 lines
2.2 KiB
PHP
111 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Model;
|
|
|
|
use JMS\Serializer\Annotation as Serializer;
|
|
use Nelmio\ApiDocBundle\Annotation\Model;
|
|
use Swagger\Annotations as SWG;
|
|
use Tightenco\Collect\Support\Collection;
|
|
|
|
class Track implements Referable, Fillable
|
|
{
|
|
use ReferableTrait, FillTrait;
|
|
|
|
/**
|
|
* Line variant describing track, for example 'a'
|
|
* @Serializer\Type("string")
|
|
* @SWG\Property(example="a")
|
|
* @var string|null
|
|
*
|
|
*/
|
|
private $variant;
|
|
|
|
/**
|
|
* Track description
|
|
* @Serializer\Type("string")
|
|
* @var string|null
|
|
*/
|
|
private $description;
|
|
|
|
/**
|
|
* Line reference
|
|
* @SWG\Property(ref=@Model(type=Line::class, groups={"Default"}))
|
|
* @var Line
|
|
*/
|
|
private $line;
|
|
|
|
/**
|
|
* Stops in track
|
|
* @var Stop[]|Collection
|
|
* @Serializer\Type("Collection")
|
|
* @SWG\Property(type="array", @SWG\Items(ref=@Model(type=Stop::class)))
|
|
*/
|
|
private $stops;
|
|
|
|
/**
|
|
* Destination stop of this track
|
|
* @var Stop|null
|
|
* @Serializer\Type(Stop::class)
|
|
* @SWG\Property(ref=@Model(type=Stop::class))
|
|
*/
|
|
private $destination;
|
|
|
|
/**
|
|
* Track constructor.
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->setStops([]);
|
|
}
|
|
|
|
public function getVariant(): ?string
|
|
{
|
|
return $this->variant;
|
|
}
|
|
|
|
public function setVariant(?string $variant): void
|
|
{
|
|
$this->variant = $variant;
|
|
}
|
|
|
|
public function getDescription(): ?string
|
|
{
|
|
return $this->description;
|
|
}
|
|
|
|
public function setDescription(?string $description): void
|
|
{
|
|
$this->description = $description;
|
|
}
|
|
|
|
public function getLine(): Line
|
|
{
|
|
return $this->line;
|
|
}
|
|
|
|
public function setLine(Line $line): void
|
|
{
|
|
$this->line = $line;
|
|
}
|
|
|
|
public function getStops(): Collection
|
|
{
|
|
return $this->stops;
|
|
}
|
|
|
|
public function setStops($stops = [])
|
|
{
|
|
return $this->stops = collect($stops);
|
|
}
|
|
|
|
public function getDestination(): ?Stop
|
|
{
|
|
return $this->destination;
|
|
}
|
|
|
|
public function setDestination(?Stop $destination): void
|
|
{
|
|
$this->destination = $destination;
|
|
}
|
|
}
|