Add subcription level filtering

This commit is contained in:
Urtzi Alfaro
2025-09-21 13:27:50 +02:00
parent 29065f5337
commit e1b3184413
21 changed files with 1137 additions and 122 deletions

View File

@@ -219,6 +219,30 @@ class InventoryService:
logger.error("Failed to get ingredients", error=str(e), tenant_id=tenant_id)
raise
async def count_ingredients_by_tenant(self, tenant_id: UUID) -> int:
"""Count total number of active ingredients for a tenant"""
try:
async with get_db_transaction() as db:
# Use SQLAlchemy count query for efficiency
from sqlalchemy import select, func, and_
query = select(func.count(Ingredient.id)).where(
and_(
Ingredient.tenant_id == tenant_id,
Ingredient.is_active == True
)
)
result = await db.execute(query)
count = result.scalar() or 0
logger.info("Counted ingredients", tenant_id=tenant_id, count=count)
return count
except Exception as e:
logger.error("Failed to count ingredients", error=str(e), tenant_id=tenant_id)
raise
# ===== STOCK MANAGEMENT =====
async def add_stock(