Merge remote-tracking branch 'origin/main'

This commit is contained in:
Mysaa 2023-02-04 15:52:46 +01:00
commit f5e352bd0b
Signed by: Mysaa
GPG Key ID: 7054D5D6A90F084F
17 changed files with 670 additions and 425 deletions

4
.gitignore vendored
View File

@ -17,3 +17,7 @@
# Secret keys
config/secrets/prod/prod.decrypt.private.php
config/secrets/dev/
# Test
src/trash/

View File

@ -10,64 +10,145 @@ use App\Repository\RoomRepository;
class MapApiController extends AbstractController
{
#[Route('/map/api')]
public function test(SiteRepository $srep): JsonResponse
#[Route('/map/api/test')]
public function test(SiteRepository $rep): JsonResponse
{
return $this->json([
'message' => 'Welcome to your new controller!',
'path' => 'src/Controller/MapApiController.php',
'sites' => $srep->allSites()[0]->getZeroLatitude()
'sites' => $rep->allSites()[0]->getZeroLatitude()
]);
}
#[Route('/map/api/get_floor')]
public function get_floor(FloorRepository $srep, int $id): JsonResponse
public function get_floor(FloorRepository $rep, int $id, string $representation): JsonResponse
{
return $rep->get_floor(id);
return $this->json([
'message' => 'Welcome to your new controller!',
'path' => 'src/Controller/MapApiController.php',
'sites' => $srep->allSites()[0]->getZeroLatitude()
]);
$floor = $rep->findFloorById($id);
$places = $floor->getPlace();
$jsonPlaces = new ArrayCollection();
foreach ($places as $place){
$jsonPlaces[] = $this->json([
'id' => $place->getId(),
'name' => $place->getName(),
'type' => $place->getType(),
'surface' => $place->getTwoDRepresentation($representation, $floor->getAltitude())
]);
}
return $jsonPlaces;
}
#[Route('/map/api/find_room_by_name')]
public function find_room_by_name(RoomRepository $srep, string $name): JsonResponse
#[Route('/map/api/find_place_by_name')]
public function find_place_by_name(PlaceRepository $rep, string $name): JsonResponse
{
$rooms = $rep->findRoomByName($name);
if (sizeof($rooms)!=1) {
$places = $rep->findPlaceByName($name);
if (sizeof($places)!=1) {
return false;
}
else {
$room = $rooms[0];
$CP = $room->getConnectedPlaces();
if (sizeof($CP)==0) return null;
$floor = $CP[0]->getFloor();
$place = $places[0];
return $this->json([
'idRoom' => $room->getId(),
'idFloor' => $floor->getId()
'idRoom' => $place->getId(),
'idFloor' => $place->getFloor()->getId()
]);
}
}
#[Route('/map/api/show_room_info')]
public function index(RoomRepository $srep, int $id): JsonResponse
#[Route('/map/api/show_place_info')]
public function index(PlaceRepository $rep, int $id): JsonResponse
{
$rooms = $rep->findRoomById($id);
if (sizeof($rooms)!=1) {
$places = $rep->findPlaceById($id);
if (sizeof($places)!=1) {
return null;
}
else {
return $this->json([
'idRoom' => $rooms[0]->getId(),
'names' => $rooms[0]->getNames(),
'users' => $rooms[0]->getUsers()
'idRoom' => $places[0]->getId(),
'names' => $places[0]->getName(),
'users' => $places[0]->getUser()
]);
}
}
#[Route('/map/api/get_all_editions')]
public function getEditions(EditionRepository $rep): JsonResponse
{
$edits = $rep->getAllEditions();
if (sizeof($edits)<1) {
return null;
}
else {
$listEdits = new ArrayCollection();
foreach ($edits as $edit){
$listEdits[] = $this->json([
'id' => $edit->getId(),
'mode' => $edit->getMode(),
'name' => $edit->getNamePlace(),
'idPlace' => $edit->getIdPlace(),
'value' => $edit->getValue()
]);
}
}
return $listEdits;
}
#[Route('/map/api/set_edition')]
public function setEdition(PlaceRepository $rep, string $mode, int $idPlace, string $value): bool
{
$edit = new Edition();
return $edit->setEdition($rep, $mode, $idPlace, $value);
}
#[Route('/map/api/remove_edition')]
public function removeEdition(EditionRepository $rep, int $id): bool
{
$edit = $rep->findEditionById($id);
if ($edit == null) {return false;}
$rep->remove($edit);
return true;
}
#[Route('/map/api/del_place_name')]
public function delPlaceName(PlaceRepository $rep, int $id, string $value): bool
{
$places = $rep->findPlaceById($id);
if (sizeof($places)!=1) { return null; }
else {
$places[0]->removeName($value);
return true;
}
}
#[Route('/map/api/add_place_name')]
public function addPlaceName(PlaceRepository $rep, int $id, string $value): bool
{
$places = $rep->findPlaceById($id);
if (sizeof($places)!=1) { return null; }
else {
$places[0]->addName($value);
return true;
}
}
#[Route('/map/api/del_room_user_name')]
public function delRoomUserName(PlaceRepository $rep, int $id, string $value): bool
{
$rooms = $rep->findPlaceById($id);
if (sizeof($rooms)!=1) { return null; }
else {
$rooms[0]->removeRoomUser($value);
return true;
}
}
#[Route('/map/api/add_room_user_name')]
public function addRoomUserName(PlaceRepository $rep, int $id, string $value): bool
{
$rooms = $rep->findPlaceById($id);
if (sizeof($rooms)!=1) { return null; }
else {
$rooms[0]->addRoomUser($value);
return true;
}
}
}

View File

@ -1,27 +0,0 @@
<?php
namespace App\Entity;
use App\Repository\CorridorRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: CorridorRepository::class)]
class Corridor extends Place
{
#[ORM\ManyToOne(targetEntity: Floor::class, inversedBy: "corridors")]
#[ORM\JoinColumn(nullable: false)]
private $floor;
public function getFloor(): ?Floor
{
return $this->floor;
}
public function setFloor(?Floor $floor): self
{
$this->floor = $floor;
return $this;
}
}

View File

@ -20,8 +20,8 @@ class Cylinder
#[ORM\JoinColumn(nullable: false)]
private $cylinderbase;
#[ORM\ManyToOne(targetEntity: Room::class, inversedBy: "CylinderRepresentation")]
private $room;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "CylinderRepresentation")]
private $place;
public function getId(): ?int
{
@ -52,14 +52,14 @@ class Cylinder
return $this;
}
public function getRoom(): ?Room
public function getPlace(): ?Place
{
return $this->room;
return $this->place;
}
public function setRoom(?Room $room): self
public function setPlace(?Place $place): self
{
$this->room = $room;
$this->place = $place;
return $this;
}

90
src/Entity/Edition.php Normal file
View File

@ -0,0 +1,90 @@
<?php
namespace App\Entity;
use App\Repository\EditionRepository;
use App\Repository\PlaceRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: EditionRepository::class)]
class Edition
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: "integer")]
private $id;
#[ORM\Id]
#[ORM\Column(type: "string")]
private $mode;
#[ORM\Id]
#[ORM\Column(type: "int")]
private $idPlace;
#[ORM\Id]
#[ORM\Column(type: "string")]
private $namePlace;
#[ORM\Id]
#[ORM\Column(type: "string")]
private $val;
public function getId(): ?int
{
return $this->id;
}
public function getMode(): ?string
{ return $this->mode; }
public function setMode(string $mode): self
{
$this->mode = $mode;
return $this;
}
public function getIdPlace(): ?int
{ return $this->idPlace; }
public function setIdPlace(int $id): self
{
$this->idPlace = $id;
return $this;
}
public function getNamePlace(): ?string
{ return $this->namePlace; }
public function setNamePlace(string $name): self
{
$this->NamePlace = $name;
return $this;
}
public function getValue(): ?string
{ return $this->val; }
public function setValue(string $val): self
{
$this->val = $val;
return $this;
}
public function setEdition(PlaceRepository $rep, string $mode, int $id, string $val): self
{
$place = $rep->findPlaceById($id);
if ($place==null) { return null; }
$names = $place->getName();
$name = '';
foreach ($names as $n) {
$name = $name + $n + ", " ;
}
$this->mode = $mode;
$this->idPlace = $id;
$this->namePlace = $name;
$this->val = $val;
return $this;
}
}

View File

@ -15,16 +15,20 @@ class Floor
#[ORM\Column(type: "integer")]
private $id;
#[ORM\Id]
#[ORM\Column(type: "integer")]
private $altitude;
#[ORM\ManyToOne(targetEntity: Building::class, inversedBy: "floors")]
#[ORM\JoinColumn(nullable: false)]
private $building;
#[ORM\OneToMany(targetEntity: Corridor::class, mappedBy: "floor")]
private $corridors;
#[ORM\ManyToMany(targetEntity: Place::class, mappedBy: "floors")]
private $places;
public function __construct()
{
$this->corridors = new ArrayCollection();
$this->places = new ArrayCollection();
}
public function getId(): ?int
@ -40,34 +44,43 @@ class Floor
public function setBuilding(?Building $building): self
{
$this->building = $building;
return $this;
}
public function getAltitude(): ?int
{
return $this->altitude;
}
public function setAltitude(int $altitude): self
{
$this->altitude = $altitude;
return $this;
}
/**
* @return Collection<int, Corridor>
* @return Collection<int, Place>
*/
public function getCorridors(): Collection
public function getPlaces(): Collection
{
return $this->corridors;
return $this->places;
}
public function addCorridor(Corridor $corridor): self
public function addPlace(Place $place): self
{
if (!$this->corridors->contains($corridor)) {
$this->corridors[] = $corridor;
$corridor->setFloor($this);
if (!$this->places->contains($place)) {
$this->places[] = $place;
$place->setFloor($this);
}
return $this;
}
public function removeCorridor(Corridor $corridor): self
public function removePlace(Place $place): self
{
if ($this->corridors->removeElement($corridor)) {
if ($this->places->removeElement($place)) {
// set the owning side to null (unless already changed)
if ($corridor->getFloor() === $this) {
$corridor->setFloor(null);
if ($place->getFloor() === $this) {
$place->setFloor(null);
}
}

View File

@ -8,10 +8,10 @@ use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: PlaceRepository::class)]
#[ORM\MappedSuperclass]
#[ORM\InheritanceType("JOINED")]
#[ORM\DiscriminatorColumn(name: "type", type: "string")]
#[ORM\DiscriminatorMap(["room" => Room::class, "corridor" => Corridor::class])]
// #[ORM\MappedSuperclass]
// #[ORM\InheritanceType("JOINED")]
// #[ORM\DiscriminatorColumn(name: "type", type: "string")]
// #[ORM\DiscriminatorMap(["room" => Room::class, "corridor" => Corridor::class])]
class Place
{
#[ORM\Id]
@ -19,19 +19,44 @@ class Place
#[ORM\Column(type: "integer")]
private $id;
#[ORM\ManyToMany(targetEntity: Place::class, inversedBy: "connectedPlaces")]
private $connection;
#[ORM\ManyToMany(targetEntity: Place::class, mappedBy: "connection")]
private $connectedPlaces;
#[ORM\Type]
#[ORM\Column(type: "string")]
// Either 'C'orridor , 'S'tairs , 'E'levator or 'R'oom
private $type;
#[ORM\OneToMany(targetEntity: PlaceName::class, mappedBy: "place")]
private $names;
#[ORM\OneToMany(targetEntity: RoomUserName::class, mappedBy: "place")]
private $users;
#[ORM\ManyToMany(targetEntity: Floor::class, inversedBy: "places")]
private $floors;
#[ORM\ManyToMany(targetEntity: Place::class, inversedBy: "connectedPlaces")]
private $connection;
#[ORM\ManyToMany(targetEntity: Place::class, mappedBy: "connection")]
private $connectedPlaces;
#[ORM\OneToMany(targetEntity: ThreeDObjectFile::class, mappedBy: "place")]
private $ComplexRepresentation;
#[ORM\OneToMany(targetEntity: Polyhedron::class, mappedBy: "place")]
private $PolyhedronRepresentation;
#[ORM\OneToMany(targetEntity: Cylinder::class, mappedBy: "place")]
private $CylinderRepresentation;
#[ORM\OneToMany(targetEntity: PolySurface::class, mappedBy: "place")]
private $PolySurfaceRepresentation;
public function __construct()
{
$this->connection = new ArrayCollection();
$this->connectedPlaces = new ArrayCollection();
$this->names = new ArrayCollection();
$this->users = new ArrayCollection();
$this->floors = new ArrayCollection();
$this->ComplexRepresentation = new ArrayCollection();
$this->PolyhedronRepresentation = new ArrayCollection();
$this->CylinderRepresentation = new ArrayCollection();
}
public function getId(): ?int
@ -39,6 +64,85 @@ class Place
return $this->id;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(string $type): bool
{
if ($type == 'C' or $type == 'S' or $type == 'E' or $type == 'R') {
$this->type = $type;
return true;
}
return false;
}
/**
* @return Collection<int, self>
*/
public function getNames(): Collection
{
return $this->names;
}
public function addName(self $name): self
{
if (!$this->names->contains($name)) {
$this->names[] = $name;
}
return $this;
}
public function removeName(self $name): self
{
$this->names->removeElement($name);
return $this;
}
/**
* @return Collection<int, self>
*/
public function getRoomUsers(): Collection
{
return $this->users;
}
public function addRoomUser(self $user): self
{
if (!$this->users->contains($user)) {
$this->users[] = $user;
}
return $this;
}
public function removeRoomUser(self $user): self
{
$this->users->removeElement($user);
return $this;
}
/**
* @return Collection<int, ThreeDObjectFile>
*/
public function getFloors(): Collection
{
return $this->floors;
}
public function addFloor(self $floor): self
{
if (!$this->floors->contains($floor)) {
$this->floors[] = $floor;
}
return $this;
}
public function removeFloor(self $floor): self
{
$this->floors->removeElement($floor);
return $this;
}
/**
* @return Collection<int, self>
*/
@ -52,14 +156,12 @@ class Place
if (!$this->connection->contains($connection)) {
$this->connection[] = $connection;
}
return $this;
}
public function removeConnection(self $connection): self
{
$this->connection->removeElement($connection);
return $this;
}
@ -77,7 +179,6 @@ class Place
$this->connectedPlaces[] = $connectedPlace;
$connectedPlace->addConnection($this);
}
return $this;
}
@ -86,7 +187,164 @@ class Place
if ($this->connectedPlaces->removeElement($connectedPlace)) {
$connectedPlace->removeConnection($this);
}
return $this;
}
/**
* @return Collection<int, ThreeDObjectFile>
*/
public function getComplexRepresentation(): Collection
{
return $this->ComplexRepresentation;
}
public function addComplexRepresentation(ThreeDObjectFile $complexRepresentation): self
{
if (!$this->ComplexRepresentation->contains($complexRepresentation)) {
$this->ComplexRepresentation[] = $complexRepresentation;
$complexRepresentation->setRoom($this);
}
return $this;
}
public function removeComplexRepresentation(ThreeDObjectFile $complexRepresentation): self
{
if ($this->ComplexRepresentation->removeElement($complexRepresentation)) {
// set the owning side to null (unless already changed)
if ($complexRepresentation->getRoom() === $this) {
$complexRepresentation->setRoom(null);
}
}
return $this;
}
/**
* @return Collection<int, Polyhedron>
*/
public function getPolyhedronRepresentation(): Collection
{
return $this->PolyhedronRepresentation;
}
public function addPolyhedronRepresentation(Polyhedron $polyhedronRepresentation): self
{
if (!$this->PolyhedronRepresentation->contains($polyhedronRepresentation)) {
$this->PolyhedronRepresentation[] = $polyhedronRepresentation;
$polyhedronRepresentation->setRoom($this);
}
return $this;
}
public function removePolyhedronRepresentation(Polyhedron $polyhedronRepresentation): self
{
if ($this->PolyhedronRepresentation->removeElement($polyhedronRepresentation)) {
// set the owning side to null (unless already changed)
if ($polyhedronRepresentation->getRoom() === $this) {
$polyhedronRepresentation->setRoom(null);
}
}
return $this;
}
/**
* @return Collection<int, Cylinder>
*/
public function getCylinderRepresentation(): Collection
{
return $this->CylinderRepresentation;
}
public function addCylinderRepresentation(Cylinder $cylinderRepresentation): self
{
if (!$this->CylinderRepresentation->contains($cylinderRepresentation)) {
$this->CylinderRepresentation[] = $cylinderRepresentation;
$cylinderRepresentation->setRoom($this);
}
return $this;
}
public function removeCylinderRepresentation(Cylinder $cylinderRepresentation): self
{
if ($this->CylinderRepresentation->removeElement($cylinderRepresentation)) {
// set the owning side to null (unless already changed)
if ($cylinderRepresentation->getRoom() === $this) {
$cylinderRepresentation->setRoom(null);
}
}
return $this;
}
/**
* @return Collection<int, PolySurface>
*/
public function getPolySurfaceRepresentation(): Collection
{
return $this->PolySurfaceRepresentation;
}
public function addPolySurfaceRepresentation(PolySurface $polySurfaceRepresentation): self
{
if (!$this->PolySurfaceRepresentation->contains($polySurfaceRepresentation)) {
$this->PolySurfaceRepresentation[] = $polySurfaceRepresentation;
$polySurfaceRepresentation->setRoom($this);
}
return $this;
}
public function removePolySurfaceRepresentation(PolySurface $polySurfaceRepresentation): self
{
if ($this->PolySurfaceRepresentation->removeElement($polySurfaceRepresentation)) {
// set the owning side to null (unless already changed)
if ($polySurfaceRepresentation->getRoom() === $this) {
$polySurfaceRepresentation->setRoom(null);
}
}
return $this;
}
public function getTwoDRepresentation(string $representation, int $alt) : array
{
if ($representation=='Cylinder') {
$rep = $this->getCylinderRepresentation();
if ($rep != null){
$repPoints = $rep->getCylinderbase()->getPolygonpoint(); //Points in repository format
$Points = new ArrayCollection();
foreach ($repPoints as $p) {
$xy=array([$p->getX(), $p->getY()]);
if (!$Points->contains($xy)){
$Points[] = $xy;
}
}
return $Points;
}
}
elseif ($representation=='PolySurface') {
$rep = $this->getPolySurfaceRepresentation();
if ($rep != null){
$repPoints = $rep->getPolysurfaceComponent()->getPolygonpoint(); //Points in repository format
$Points = new ArrayCollection();
foreach ($repPoints as $p) {
$xy=array([$p->getX(), $p->getY()]);
if (!$Points->contains($xy)){
$Points[] = $xy;
}
}
return $Points;
}
}
else {
return null;
}
}
}

View File

@ -7,7 +7,7 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: PlaceNamenRepository::class)]
#[ORM\Entity(repositoryClass: PlaceNameRepository::class)]
class PlaceName
{
#[ORM\Id]
@ -18,58 +18,23 @@ class PlaceName
#[ORM\Column(type: "string")]
private $name;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "names")]
private $room;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "id")]
private $place;
public function __construct()
{
$this->polyhedronface = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
/**
* @return Collection<int, PlaneSurface>
*/
public function getPolyhedronface(): Collection
public function getPlace(): ?Place
{
return $this->polyhedronface;
return $this->place;
}
public function addPolyhedronface(PlaneSurface $polyhedronface): self
public function setPlace(?Place $place): self
{
if (!$this->polyhedronface->contains($polyhedronface)) {
$this->polyhedronface[] = $polyhedronface;
$polyhedronface->setPolyhedron($this);
}
return $this;
}
public function removePolyhedronface(PlaneSurface $polyhedronface): self
{
if ($this->polyhedronface->removeElement($polyhedronface)) {
// set the owning side to null (unless already changed)
if ($polyhedronface->getPolyhedron() === $this) {
$polyhedronface->setPolyhedron(null);
}
}
return $this;
}
public function getRoom(): ?Room
{
return $this->room;
}
public function setRoom(?Room $room): self
{
$this->room = $room;
$this->place = $place;
return $this;
}
@ -77,11 +42,9 @@ class PlaceName
{
return $this->name;
}
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
}

View File

@ -18,8 +18,8 @@ class PolySurface
#[ORM\OneToMany(targetEntity: PlaneSurface::class, mappedBy: "polySurface")]
private $polysurfaceComponent;
#[ORM\ManyToOne(targetEntity: Corridor::class)]
private $SurfaceRepresentation;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "PolySurfaceRepresentation")]
private $place;
public function __construct()
{
@ -61,14 +61,14 @@ class PolySurface
return $this;
}
public function getSurfaceRepresentation(): ?Corridor
public function getPlace(): ?Place
{
return $this->SurfaceRepresentation;
return $this->place;
}
public function setSurfaceRepresentation(?Corridor $SurfaceRepresentation): self
public function setPlace(?Place $place): self
{
$this->SurfaceRepresentation = $SurfaceRepresentation;
$this->place = $place;
return $this;
}

View File

@ -18,8 +18,8 @@ class Polyhedron
#[ORM\OneToMany(targetEntity: PlaneSurface::class, mappedBy: "polyhedron")]
private $polyhedronface;
#[ORM\ManyToOne(targetEntity: Room::class, inversedBy: "PolyhedronRepresentation")]
private $room;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "PolyhedronRepresentation")]
private $place;
public function __construct()
{
@ -61,14 +61,14 @@ class Polyhedron
return $this;
}
public function getRoom(): ?Room
public function getPlace(): ?Place
{
return $this->room;
return $this->place;
}
public function setRoom(?Room $room): self
public function setPlace(?Place $place): self
{
$this->room = $room;
$this->place = $place;
return $this;
}

View File

@ -1,120 +0,0 @@
<?php
namespace App\Entity;
use App\Repository\RoomRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: RoomRepository::class)]
class Room extends Place
{
#[ORM\OneToMany(targetEntity: ThreeDObjectFile::class, mappedBy: "room")]
private $ComplexRepresentation;
#[ORM\OneToMany(targetEntity: Polyhedron::class, mappedBy: "room")]
private $PolyhedronRepresentation;
#[ORM\OneToMany(targetEntity: Cylinder::class, mappedBy: "room")]
private $CylinderRepresentation;
public function __construct()
{
parent::__construct();
$this->ComplexRepresentation = new ArrayCollection();
$this->PolyhedronRepresentation = new ArrayCollection();
$this->CylinderRepresentation = new ArrayCollection();
}
/**
* @return Collection<int, ThreeDObjectFile>
*/
public function getComplexRepresentation(): Collection
{
return $this->ComplexRepresentation;
}
public function addComplexRepresentation(ThreeDObjectFile $complexRepresentation): self
{
if (!$this->ComplexRepresentation->contains($complexRepresentation)) {
$this->ComplexRepresentation[] = $complexRepresentation;
$complexRepresentation->setRoom($this);
}
return $this;
}
public function removeComplexRepresentation(ThreeDObjectFile $complexRepresentation): self
{
if ($this->ComplexRepresentation->removeElement($complexRepresentation)) {
// set the owning side to null (unless already changed)
if ($complexRepresentation->getRoom() === $this) {
$complexRepresentation->setRoom(null);
}
}
return $this;
}
/**
* @return Collection<int, Polyhedron>
*/
public function getPolyhedronRepresentation(): Collection
{
return $this->PolyhedronRepresentation;
}
public function addPolyhedronRepresentation(Polyhedron $polyhedronRepresentation): self
{
if (!$this->PolyhedronRepresentation->contains($polyhedronRepresentation)) {
$this->PolyhedronRepresentation[] = $polyhedronRepresentation;
$polyhedronRepresentation->setRoom($this);
}
return $this;
}
public function removePolyhedronRepresentation(Polyhedron $polyhedronRepresentation): self
{
if ($this->PolyhedronRepresentation->removeElement($polyhedronRepresentation)) {
// set the owning side to null (unless already changed)
if ($polyhedronRepresentation->getRoom() === $this) {
$polyhedronRepresentation->setRoom(null);
}
}
return $this;
}
/**
* @return Collection<int, Cylinder>
*/
public function getCylinderRepresentation(): Collection
{
return $this->CylinderRepresentation;
}
public function addCylinderRepresentation(Cylinder $cylinderRepresentation): self
{
if (!$this->CylinderRepresentation->contains($cylinderRepresentation)) {
$this->CylinderRepresentation[] = $cylinderRepresentation;
$cylinderRepresentation->setRoom($this);
}
return $this;
}
public function removeCylinderRepresentation(Cylinder $cylinderRepresentation): self
{
if ($this->CylinderRepresentation->removeElement($cylinderRepresentation)) {
// set the owning side to null (unless already changed)
if ($cylinderRepresentation->getRoom() === $this) {
$cylinderRepresentation->setRoom(null);
}
}
return $this;
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: RoomUserRepository::class)]
class RoomUserName
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: "integer")]
private $id;
#[ORM\Column(type: "string")]
private $userName;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "id")]
private $place;
public function getId(): ?int
{
return $this->id;
}
public function getPlace(): ?Place
{
return $this->place;
}
public function setPlace(?Place $place): self
{
$this->place = $place;
return $this;
}
public function getUserName(): ?string
{
return $this->userName;
}
public function setUserName(?string $name): self
{
$this->userName = $name;
return $this;
}
}

View File

@ -16,8 +16,8 @@ class ThreeDObjectFile
#[ORM\Column(type: "string", length: 255)]
private $filename;
#[ORM\ManyToOne(targetEntity: Room::class, inversedBy: "ComplexRepresentation")]
private $room;
#[ORM\ManyToOne(targetEntity: Place::class, inversedBy: "ComplexRepresentation")]
private $place;
public function getId(): ?int
{
@ -36,14 +36,14 @@ class ThreeDObjectFile
return $this;
}
public function getRoom(): ?Room
public function getPlace(): ?Place
{
return $this->room;
return $this->place;
}
public function setRoom(?Room $room): self
public function setPlace(?Place $place): self
{
$this->room = $room;
$this->place = $place;
return $this;
}

View File

@ -1,66 +0,0 @@
<?php
namespace App\Repository;
use App\Entity\Corridor;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Corridor>
*
* @method Corridor|null find($id, $lockMode = null, $lockVersion = null)
* @method Corridor|null findOneBy(array $criteria, array $orderBy = null)
* @method Corridor[] findAll()
* @method Corridor[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class CorridorRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Corridor::class);
}
public function add(Corridor $entity, bool $flush = false): void
{
$this->getEntityManager()->persist($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
public function remove(Corridor $entity, bool $flush = false): void
{
$this->getEntityManager()->remove($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
// /**
// * @return Corridor[] Returns an array of Corridor objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('c')
// ->andWhere('c.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('c.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?Corridor
// {
// return $this->createQueryBuilder('c')
// ->andWhere('c.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}

View File

@ -0,0 +1,64 @@
<?php
namespace App\Repository;
use App\Entity\Edition;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Edition>
*
* @method Edition|null find($id, $lockMode = null, $lockVersion = null)
* @method Edition|null findOneBy(array $criteria, array $orderBy = null)
* @method Edition[] findAll()
* @method Edition[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class EditionRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Edition::class);
}
public function add(Edition $entity, bool $flush = false): void
{
$this->getEntityManager()->persist($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
public function remove(Edition $entity, bool $flush = false): void
{
$this->getEntityManager()->remove($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
/**
* @return Edition[] Returns an array of Edition objects
*/
public function getAllEditions(): array
{
return $this->createQueryBuilder('f')
->orderBy('f.id', 'ASC')
->getQuery()
->getResult()
;
}
public function findEditionById(int $id): ?Edition
{
return $this->createQueryBuilder('f')
->andWhere('f.id = :val')
->setParameter('val', $id)
->getQuery()
->getOneOrNullResult()
;
}
}

View File

@ -40,18 +40,31 @@ class PlaceRepository extends ServiceEntityRepository
}
/**
* @return Place[] Returns an array of Place objects having connection with Corrido
* @return Place[] Returns an array of Place objects
*/
public function findPlaceConnectedTo($value): array
{
return $this->createQueryBuilder('p')
->andWhere('p.connectedPlace = :val')
->setParameter('val', $value)
->orderBy('p.id', 'ASC')
->getQuery()
->getResult()
;
}
public function findPlaceByName(string $name): array
{
return $this->createQueryBuilder('p')
->andWhere('LOWER(p.name) = :val')
->setParameter('val', strtolower($name))
->orderBy('p.id', 'ASC')
->getQuery()
->getResult()
;
}
/**
* @return Place[] Returns an array of Place objects
*/
public function findPlaceById(int $id): array
{
return $this->createQueryBuilder('p')
->andWhere('p.id = :val')
->setParameter('val', $id)
->orderBy('p.id', 'ASC')
->getQuery()
->getResult()
;
}

View File

@ -1,77 +0,0 @@
<?php
namespace App\Repository;
use App\Entity\Room;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Room>
*
* @method Room|null find($id, $lockMode = null, $lockVersion = null)
* @method Room|null findOneBy(array $criteria, array $orderBy = null)
* @method Room[] findAll()
* @method Room[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class RoomRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Room::class);
}
public function add(Room $entity, bool $flush = false): void
{
$this->getEntityManager()->persist($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
public function remove(Room $entity, bool $flush = false): void
{
$this->getEntityManager()->remove($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
/**
* @return Room[] Returns an array of Room objects
*/
public function findRoomByName(string $name): array
{
return $this->createQueryBuilder('r')
->andWhere('r.name.lower() = :val')
->setParameter('val', $name.lower())
->orderBy('r.id', 'ASC')
->getQuery()
->getResult()
;
}
/**
* @return Room[] Returns an array of Room objects
*/
public function findRoomById(int $id): array
{
return $this->createQueryBuilder('r')
->andWhere('r.id = :val')
->setParameter('val', $id)
->orderBy('r.id', 'ASC')
->getQuery()
->getResult()
;
}
// public function findOneBySomeField($value): ?Room
// {
// return $this->createQueryBuilder('r')
// ->andWhere('r.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}