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: