"""
Clear all ChromaDB collections (signals + embeddings).
Collections will be automatically recreated when new signals are stored.
"""
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))

import chromadb
from backend.config import CHROMA_DB_PATH

def clear_all_collections():
    """Delete all collections from ChromaDB."""
    print("=" * 60)
    print("ChromaDB Clear Script")
    print("=" * 60)
    
    client = chromadb.PersistentClient(path=CHROMA_DB_PATH)
    
    # Get all collections
    collections = client.list_collections()
    
    if not collections:
        print("\n✅ Database is already empty (no collections found)")
        return
    
    print(f"\nFound {len(collections)} collection(s):")
    for coll in collections:
        count = coll.count()
        print(f"  - {coll.name}: {count} documents")
    
    # Confirm deletion
    print(f"\n⚠️  This will DELETE all {len(collections)} collections and their data.")
    print("   (Collections will be recreated automatically when new signals are added)")
    
    response = input("\nType 'yes' to confirm deletion: ")
    
    if response.lower() != 'yes':
        print("\n❌ Deletion cancelled.")
        return
    
    # Delete all collections
    print("\n🗑️  Deleting collections...")
    deleted = 0
    for coll in collections:
        try:
            client.delete_collection(coll.name)
            print(f"  ✅ Deleted: {coll.name}")
            deleted += 1
        except Exception as e:
            print(f"  ❌ Failed to delete {coll.name}: {e}")
    
    print(f"\n✅ Successfully deleted {deleted}/{len(collections)} collection(s)")
    print("   Database is now empty. Collections will be recreated on next signal ingestion.")
    print("=" * 60)


if __name__ == "__main__":
    clear_all_collections()
