diff --git a/formatscaper/models.py b/formatscaper/models.py index 631c3ec74dc3351a0b2da76b1735286017535075..bcb9a69f67f5939da48298feb1429350d11b0ba4 100644 --- a/formatscaper/models.py +++ b/formatscaper/models.py @@ -1,7 +1,7 @@ import dataclasses from typing import List, Optional -from sqlalchemy import ForeignKey, create_engine +from sqlalchemy import ForeignKey, UniqueConstraint, create_engine from sqlalchemy.orm import DeclarativeBase, Mapped, Session, mapped_column, relationship @@ -98,6 +98,9 @@ class Result(ModelBase): format_id: Mapped[Optional[int]] = mapped_column(ForeignKey("format.id")) format: Mapped[Format] = relationship(back_populates="results") + # filenames are unique per record + __table_args__ = (UniqueConstraint("record", "filename"),) + @property def risk(self): """Calculate the risk assessment for the file."""