diff --git a/formatscaper/models.py b/formatscaper/models.py index 631c3ec74dc3351a0b2da76b1735286017535075..867c805d682957e2972f1ee7c14d1acf98a8be68 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."""