Skip to content

Commit de0f910

Browse files
committed
feat: Implement unique index for team-assessment in submissions
1 parent 945db2c commit de0f910

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

lib/cadet/assessments/submission.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ defmodule Cadet.Assessments.Submission do
4545
|> foreign_key_constraint(:student_id)
4646
|> foreign_key_constraint(:assessment_id)
4747
|> foreign_key_constraint(:unsubmitted_by_id)
48+
|> unique_constraint(:unique_team_id, name: :submissions_team_id_assessment_id_unique_index)
4849
end
4950

5051
defp validate_xor_relationship(changeset) do
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
defmodule Cadet.Repo.Migrations.CreateTeamsSubmissionConstraint do
2+
use Ecto.Migration
3+
4+
def up do
5+
create(
6+
unique_index(
7+
:submissions,
8+
[:team_id, :assessment_id],
9+
name: :submissions_team_id_assessment_id_unique_index
10+
)
11+
)
12+
end
13+
14+
def down do
15+
drop(constraint(:submissions, :submissions_team_id_assessment_id_unique_index))
16+
end
17+
end

0 commit comments

Comments
 (0)