"""Debug: check if ticket's category_id maps to a valid category and what tenant it belongs to""" import asyncio import os import sys sys.path.insert(0, '/app') os.chdir('/app') from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text async def run(): database_url = os.environ.get('DATABASE_URL', 'postgresql+asyncpg://postgres:postgres@db:5432/servicemanager') engine = create_async_engine(database_url) async with engine.connect() as c: # Check tickets and their category names via direct JOIN r = await c.execute(text(""" SELECT t.ticket_number, t.category_id, cat.name as category_name, cat.tenant_id as cat_tenant, t.tenant_id as ticket_tenant FROM tickets t LEFT JOIN ticket_categories cat ON cat.id = t.category_id WHERE t.category_id IS NOT NULL LIMIT 10 """)) print("=== TICKET -> CATEGORY JOIN ===") for row in r.fetchall(): match = "✓ SAME TENANT" if row[3] == row[4] else "✗ DIFFERENT TENANT" print(f" {row[0]}: cat_id={str(row[1])[:8]}, cat_name={row[2]}, {match}") # Check what tenant aduanasoft-demo is r2 = await c.execute(text("SELECT id, slug FROM tenants WHERE slug='aduanasoft-demo'")) tenant = r2.fetchone() print(f"\nTenant aduanasoft-demo: {tenant[0] if tenant else 'NOT FOUND'}") await engine.dispose() asyncio.run(run())