feat(trash): exclude trashed rows from events/projects/milestones/rulebooks/embeddings reads + filtering tests

This commit is contained in:
2026-05-28 20:33:40 -04:00
parent e7f214fc80
commit eb41e772cd
6 changed files with 152 additions and 9 deletions
+9 -2
View File
@@ -37,7 +37,10 @@ async def create_milestone(
async def get_milestone(user_id: int, milestone_id: int) -> Milestone | None:
async with async_session() as session:
result = await session.execute(
select(Milestone).where(Milestone.id == milestone_id, Milestone.user_id == user_id)
select(Milestone).where(
Milestone.id == milestone_id, Milestone.user_id == user_id,
Milestone.deleted_at.is_(None),
)
)
return result.scalars().first()
@@ -93,6 +96,7 @@ async def list_milestones(
query = select(Milestone).where(
Milestone.user_id == user_id,
Milestone.project_id == project_id,
Milestone.deleted_at.is_(None),
)
if status:
query = query.where(Milestone.status == status)
@@ -136,7 +140,10 @@ async def get_milestone_progress(milestone_id: int) -> dict:
async with async_session() as session:
rows = await session.execute(
select(Note.status, func.count(Note.id))
.where(Note.milestone_id == milestone_id, Note.status.isnot(None))
.where(
Note.milestone_id == milestone_id, Note.status.isnot(None),
Note.deleted_at.is_(None),
)
.group_by(Note.status)
)
status_counts: dict[str, int] = {}