Skip to content

Commit db7370c

Browse files
committed
bug: enforce number of teams based on groups
1 parent 87148da commit db7370c

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

hasura/triggers/tournament_stages.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ BEGIN
2727

2828
_min_teams := NEW.min_teams;
2929

30+
-- Validate first stage minimum teams (must be at least 4 * number of groups)
31+
IF current_order = 1 AND NEW.groups IS NOT NULL AND NEW.groups > 0 THEN
32+
IF NEW.min_teams < 4 * NEW.groups THEN
33+
RAISE EXCEPTION 'First stage must have at least % teams given % groups (minimum 4 teams per group)',
34+
4 * NEW.groups, NEW.groups USING ERRCODE = '22000';
35+
END IF;
36+
END IF;
37+
3038
FOR stage_record IN
3139
SELECT * FROM tournament_stages
3240
WHERE tournament_id = NEW.tournament_id
@@ -160,6 +168,14 @@ BEGIN
160168
NEW.max_teams = NEW.min_teams;
161169
END IF;
162170
END IF;
171+
172+
-- Validate first stage minimum teams (must be at least 4 * number of groups)
173+
IF NEW."order" = 1 AND NEW.groups IS NOT NULL AND NEW.groups > 0 THEN
174+
IF NEW.min_teams < 4 * NEW.groups THEN
175+
RAISE EXCEPTION 'First stage must have at least % teams given % groups (minimum 4 teams per group)',
176+
4 * NEW.groups, NEW.groups USING ERRCODE = '22000';
177+
END IF;
178+
END IF;
163179

164180
-- Validate that this stage can accommodate teams advancing from the previous stage
165181
IF NEW."order" > 1 THEN

0 commit comments

Comments
 (0)