first commit

This commit is contained in:
Mateusz Gruszczyński
2026-03-13 15:17:32 +01:00
commit 986ffb200a
91 changed files with 4423 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
from __future__ import annotations
from ..models import Expense
def suggest_category_id(user_id: int, vendor: str = '', title: str = '') -> int | None:
vendor = (vendor or '').strip().lower()
title = (title or '').strip().lower()
if not vendor and not title:
return None
recent = (
Expense.query.filter_by(user_id=user_id, is_deleted=False)
.filter(Expense.category_id.isnot(None))
.order_by(Expense.id.desc())
.limit(100)
.all()
)
for expense in recent:
ev = (expense.vendor or '').strip().lower()
et = (expense.title or '').strip().lower()
if vendor and ev == vendor:
return expense.category_id
if title and et == title:
return expense.category_id
return None