diff --git a/scripts/mysql.sql b/scripts/mysql.sql index 79cda80..6c61426 100644 --- a/scripts/mysql.sql +++ b/scripts/mysql.sql @@ -34,7 +34,6 @@ CREATE TABLE galette_activities_subscriptions ( end_date date NOT NULL, comment text, PRIMARY KEY (id_subscription), - UNIQUE KEY (id_activity, id_adh), FOREIGN KEY (id_activity) REFERENCES galette_activities_activities (id_activity) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (id_adh) REFERENCES galette_adherents (id_adh) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; diff --git a/scripts/pgsql.sql b/scripts/pgsql.sql index ad326fe..5e7cd3f 100644 --- a/scripts/pgsql.sql +++ b/scripts/pgsql.sql @@ -46,6 +46,5 @@ CREATE TABLE galette_activities_subscriptions ( subscription_date date NOT NULL, end_date date NOT NULL, comment text, - PRIMARY KEY (id_subscription), - UNIQUE (id_activity, id_adh) + PRIMARY KEY (id_subscription) ); diff --git a/tests/GaletteActivities/Entity/tests/units/Subscription.php b/tests/GaletteActivities/Entity/tests/units/Subscription.php index f160082..695b83d 100644 --- a/tests/GaletteActivities/Entity/tests/units/Subscription.php +++ b/tests/GaletteActivities/Entity/tests/units/Subscription.php @@ -247,6 +247,19 @@ public function testCrud(): void $member_one->loadGroups(); $groups = $member_one->getGroups(); $this->assertCount(1, $groups); + + //no duplicate on subscriptions + $subscription = new \GaletteActivities\Entity\Subscription($this->zdb); + $data = [ + 'activity' => $gactivity_id, + 'member' => $member_one->id, + 'subscription_date' => (new \DateTime())->format('Y-m-d'), + 'end_date' => (new \DateTime())->modify('+1 year')->format('Y-m-d'), + 'comment' => 'Comment ' . $this->seed, + ]; + $this->assertTrue($subscription->check($data)); + $this->assertTrue($subscription->store()); + } /**