Fix situation when there are multiple first stops on same trip
This commit is contained in:
parent
ee0cde0400
commit
87255eaf13
@ -4,6 +4,7 @@ namespace App\Entity;
|
||||
|
||||
use App\Model\Fillable;
|
||||
use App\Model\FillTrait;
|
||||
use App\Model\Referable;
|
||||
use App\Model\Trip;
|
||||
use App\Service\IdUtils;
|
||||
use Carbon\Carbon;
|
||||
@ -14,21 +15,28 @@ use JMS\Serializer\Tests\Fixtures\Discriminator\Car;
|
||||
* @ORM\Entity
|
||||
* @ORM\Table("trip_stop")
|
||||
*/
|
||||
class TripStopEntity implements Fillable
|
||||
class TripStopEntity implements Fillable, Referable
|
||||
{
|
||||
use FillTrait;
|
||||
use FillTrait, ReferableEntityTrait;
|
||||
|
||||
/**
|
||||
* Identifier for stop coming from provider
|
||||
*
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @var StopEntity
|
||||
* @ORM\ManyToOne(targetEntity=StopEntity::class, fetch="EAGER")
|
||||
* @ORM\Id
|
||||
*/
|
||||
private $stop;
|
||||
|
||||
/**
|
||||
* @var TripEntity
|
||||
* @ORM\ManyToOne(targetEntity=TripEntity::class, fetch="EAGER", inversedBy="stops")
|
||||
* @ORM\Id
|
||||
*/
|
||||
private $trip;
|
||||
|
||||
@ -37,7 +45,6 @@ class TripStopEntity implements Fillable
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="sequence", type="integer")
|
||||
* @ORM\Id
|
||||
*/
|
||||
private $order;
|
||||
|
||||
|
43
src/Migrations/Version20200314112552.php
Normal file
43
src/Migrations/Version20200314112552.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20200314112552 extends AbstractMigration
|
||||
{
|
||||
public function getDescription() : string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema) : void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'sqlite', 'Migration can only be executed safely on \'sqlite\'.');
|
||||
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__trip_stop AS SELECT stop_id, trip_id, sequence, arrival, departure FROM trip_stop');
|
||||
$this->addSql('DROP TABLE trip_stop');
|
||||
$this->addSql('CREATE TABLE trip_stop (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, sequence INTEGER NOT NULL, arrival DATETIME NOT NULL, departure DATETIME NOT NULL, stop_id VARCHAR(255) DEFAULT NULL, trip_id VARCHAR(255) DEFAULT NULL)');
|
||||
$this->addSql('INSERT INTO trip_stop (stop_id, trip_id, sequence, arrival, departure) SELECT stop_id, trip_id, sequence, arrival, departure FROM __temp__trip_stop');
|
||||
$this->addSql('DROP TABLE __temp__trip_stop');
|
||||
}
|
||||
|
||||
public function down(Schema $schema) : void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'sqlite', 'Migration can only be executed safely on \'sqlite\'.');
|
||||
|
||||
$this->addSql('CREATE TEMPORARY TABLE __temp__trip_stop AS SELECT sequence, arrival, departure, stop_id, trip_id FROM trip_stop');
|
||||
$this->addSql('DROP TABLE trip_stop');
|
||||
$this->addSql('CREATE TABLE trip_stop (sequence INTEGER NOT NULL, stop_id VARCHAR(255) NOT NULL COLLATE BINARY, trip_id VARCHAR(255) NOT NULL COLLATE BINARY, arrival DATETIME NOT NULL, departure DATETIME NOT NULL, PRIMARY KEY(stop_id, trip_id, sequence))');
|
||||
$this->addSql('INSERT INTO trip_stop (sequence, arrival, departure, stop_id, trip_id) SELECT sequence, arrival, departure, stop_id, trip_id FROM __temp__trip_stop');
|
||||
$this->addSql('DROP TABLE __temp__trip_stop');
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user