diff --git a/migrations/Version20250216220539.php b/migrations/Version20250216220539.php new file mode 100644 index 00000000..41ea425c --- /dev/null +++ b/migrations/Version20250216220539.php @@ -0,0 +1,35 @@ +addSql('ALTER TABLE user ADD active_festival_id INT DEFAULT NULL'); + $this->addSql('ALTER TABLE user ADD CONSTRAINT FK_8D93D649DE145A1C FOREIGN KEY (active_festival_id) REFERENCES festival (id)'); + $this->addSql('CREATE UNIQUE INDEX UNIQ_8D93D649DE145A1C ON user (active_festival_id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE user DROP FOREIGN KEY FK_8D93D649DE145A1C'); + $this->addSql('DROP INDEX UNIQ_8D93D649DE145A1C ON user'); + $this->addSql('ALTER TABLE user DROP active_festival_id'); + } +} diff --git a/src/Controller/DefaultController.php b/src/Controller/DefaultController.php index cf2ce242..03a36ef8 100644 --- a/src/Controller/DefaultController.php +++ b/src/Controller/DefaultController.php @@ -111,7 +111,7 @@ final class DefaultController extends AbstractController $user = $this->getUser(); // $products = $this->getUser()->getProducts(); return $this->json([ - 'categories' => $user->getGroupOfProducts(), + 'categories' => $user->getGroupOfProducts(), 'products' => $user->getProducts(), // mock land 'lastFestival' => ['id'=>1, diff --git a/src/Entity/GroupOfProducts.php b/src/Entity/GroupOfProducts.php index 6edc10aa..428561c0 100644 --- a/src/Entity/GroupOfProducts.php +++ b/src/Entity/GroupOfProducts.php @@ -24,6 +24,7 @@ class GroupOfProducts /** * @var Collection */ + // TODO apiresource return properties #[ORM\ManyToMany(targetEntity: Product::class, inversedBy: 'groupOfProducts')] private Collection $products; diff --git a/src/Entity/User.php b/src/Entity/User.php index f68030fe..ea6de1e2 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -83,6 +83,9 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface #[ORM\OneToMany(targetEntity: SerieFestival::class, mappedBy: 'user')] private Collection $seriesFestival; + #[ORM\OneToOne(cascade: ['persist', 'remove'])] + private ?Festival $activeFestival = null; + public function __construct() { @@ -372,4 +375,16 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface return $this; } + public function getActiveFestival(): ?Festival + { + return $this->activeFestival; + } + + public function setActiveFestival(?Festival $activeFestival): static + { + $this->activeFestival = $activeFestival; + + return $this; + } + } diff --git a/templates/logged/angular/loaded-caisse.html.twig b/templates/logged/angular/loaded-caisse.html.twig index 742be886..594a37f6 100755 --- a/templates/logged/angular/loaded-caisse.html.twig +++ b/templates/logged/angular/loaded-caisse.html.twig @@ -3,8 +3,8 @@
-{# {% include 'logged/angular/messages.html.twig' %}#} -{# {% include 'logged/angular/listing-products.html.twig' %}#} + {% include 'logged/angular/messages.html.twig' %} + {% include 'logged/angular/listing-products.html.twig' %}
@@ -12,22 +12,22 @@
-{# {% include 'logged/angular/validate-button.html.twig' %}#} -{# {% if app.user.products |length %}#} -{# {% include 'logged/angular/current.html.twig' %}#} -{# {% endif %}#} + {% include 'logged/angular/validate-button.html.twig' %} + {% if app.user.products |length %} + {% include 'logged/angular/current.html.twig' %} + {% endif %} - {#{% include 'logged/angular/paused.html.twig' %}#} + {% include 'logged/angular/paused.html.twig' %}
ventes récentes -{# {% include 'logged/angular/recent.html.twig' %}#} + {% include 'logged/angular/recent.html.twig' %}
catégories -{# {% include 'logged/angular/categ-options.html.twig' %}#} + {% include 'logged/angular/categ-options.html.twig' %}