From 2d05035c1d22fab4613d7ddbe39902a9d6dcd0d9 Mon Sep 17 00:00:00 2001 From: Felipe Cardoso Date: Wed, 31 Dec 2025 12:47:19 +0100 Subject: [PATCH] fix(backend): add unique constraint for sprint numbers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add UniqueConstraint to Sprint model to ensure sprint numbers are unique within a project, matching the migration specification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- backend/app/models/syndarix/sprint.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/app/models/syndarix/sprint.py b/backend/app/models/syndarix/sprint.py index bdf0794..4606d80 100644 --- a/backend/app/models/syndarix/sprint.py +++ b/backend/app/models/syndarix/sprint.py @@ -5,7 +5,7 @@ Sprint model for Syndarix AI consulting platform. A Sprint represents a time-boxed iteration for organizing and delivering work. """ -from sqlalchemy import Column, Date, Enum, ForeignKey, Index, Integer, String, Text +from sqlalchemy import Column, Date, Enum, ForeignKey, Index, Integer, String, Text, UniqueConstraint from sqlalchemy.dialects.postgresql import UUID as PGUUID from sqlalchemy.orm import relationship @@ -65,6 +65,8 @@ class Sprint(Base, UUIDMixin, TimestampMixin): Index("ix_sprints_project_status", "project_id", "status"), Index("ix_sprints_project_number", "project_id", "number"), Index("ix_sprints_date_range", "start_date", "end_date"), + # Ensure sprint numbers are unique within a project + UniqueConstraint("project_id", "number", name="uq_sprint_project_number"), ) def __repr__(self) -> str: