#!/usr/bin/env python3
"""
Test catalog filtering directly via AssetService.
"""
import asyncio
import sys
sys.path.insert(0, '/app')

from app.db.session import async_sessionmaker
from app.services.asset_service import AssetService

async def test():
    async_session = async_sessionmaker()
    async with async_session() as session:
        async with session.begin():
            # Get makes
            makes = await AssetService.get_makes(session)
            print(f"Total makes: {len(makes)}")
            if not makes:
                print("No makes in database")
                return
            test_make = makes[0]
            print(f"Testing with make: {test_make}")
            
            # Get all models
            models_all = await AssetService.get_models(session, test_make)
            print(f"All models for {test_make}: {len(models_all)}")
            
            # Get filtered by passenger_car
            models_car = await AssetService.get_models(session, test_make, 'passenger_car')
            print(f"Models filtered by 'passenger_car': {len(models_car)}")
            
            # Get filtered by motorcycle
            models_moto = await AssetService.get_models(session, test_make, 'motorcycle')
            print(f"Models filtered by 'motorcycle': {len(models_moto)}")
            
            # Verify filtering works
            if models_car and len(models_car) <= len(models_all):
                print("✅ PASS: Car filter returns subset or equal")
            else:
                print("⚠ WARNING: Car filter anomaly")
            
            # Check if there's any difference
            if models_car != models_all:
                print("✅ PASS: Filtering actually changes results")
            else:
                print("⚠ WARNING: Filtering returns same results (maybe no vehicle_class data)")
            
            # Print a few examples
            if models_all:
                print(f"Sample models: {models_all[:3]}")
            if models_car:
                print(f"Sample car models: {models_car[:3]}")
            if models_moto:
                print(f"Sample motorcycle models: {models_moto[:3]}")

if __name__ == "__main__":
    asyncio.run(test())