#!/usr/bin/env python3
"""
Test Quick Analysis on Upload
Tests CVR detection, document type, and invoice number extraction
"""

import asyncio
import sys
from pathlib import Path

# Add app directory to path
sys.path.insert(0, str(Path(__file__).parent / "app"))

from app.services.ollama_service import ollama_service

async def test_quick_analysis():
    """Test quick analysis with sample text"""
    
    # Sample invoice text with CVR
    sample_invoice = """
    ALSO Danmark A/S
    Jupitervej 4
    6000 Kolding
    
    CVR-nr.: 35812428
    
    FAKTURA
    
    Faktura nr.: INV-2024-12345
    Dato: 2024-12-08
    
    Beløb i alt: 5.965,18 DKK
    """
    
    # Sample credit note text
    sample_credit_note = """
    Test Leverandør A/S
    CVR: 12345678
    
    KREDITNOTA
    
    Kreditnota nr.: CN-2024-5678
    Original faktura: INV-2024-1000
    
    Beløb: -1.234,56 DKK
    """
    
    print("🧪 Testing Quick Analysis\n")
    print("=" * 60)
    
    # Test 1: Invoice with CVR
    print("\n📄 TEST 1: Invoice with CVR")
    print("-" * 60)
    result1 = await ollama_service.quick_analysis_on_upload(sample_invoice)
    print(f"CVR: {result1['cvr']}")
    print(f"Document Type: {result1['document_type']}")
    print(f"Document Number: {result1['document_number']}")
    print(f"Vendor ID: {result1['vendor_id']}")
    print(f"Vendor Name: {result1['vendor_name']}")
    
    assert result1['cvr'] == '35812428', f"Expected CVR 35812428, got {result1['cvr']}"
    assert result1['document_type'] == 'invoice', f"Expected invoice, got {result1['document_type']}"
    assert result1['document_number'] == 'INV-2024-12345', f"Expected INV-2024-12345, got {result1['document_number']}"
    print("✅ Test 1 PASSED")
    
    # Test 2: Credit Note
    print("\n📄 TEST 2: Credit Note")
    print("-" * 60)
    result2 = await ollama_service.quick_analysis_on_upload(sample_credit_note)
    print(f"CVR: {result2['cvr']}")
    print(f"Document Type: {result2['document_type']}")
    print(f"Document Number: {result2['document_number']}")
    print(f"Vendor ID: {result2['vendor_id']}")
    print(f"Vendor Name: {result2['vendor_name']}")
    
    assert result2['cvr'] == '12345678', f"Expected CVR 12345678, got {result2['cvr']}"
    assert result2['document_type'] == 'credit_note', f"Expected credit_note, got {result2['document_type']}"
    assert result2['document_number'] == 'CN-2024-5678', f"Expected CN-2024-5678, got {result2['document_number']}"
    print("✅ Test 2 PASSED")
    
    print("\n" + "=" * 60)
    print("✅ ALL TESTS PASSED!")
    print("=" * 60)

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