#!/usr/bin/env python3
import psycopg2
from psycopg2.extras import RealDictCursor

# Get connection from .env
with open('.env') as f:
    for line in f:
        if line.startswith('DATABASE_URL'):
            db_url = line.split('=', 1)[1].strip()
            break

# Parse URL: postgresql://user:pass@host:port/dbname
parts = db_url.replace('postgresql://', '').split('@')
user_pass = parts[0].split(':')
host_port_db = parts[1].split('/')
host_port = host_port_db[0].split(':')

conn = psycopg2.connect(
    host='localhost',
    port=5433,
    database=host_port_db[1],
    user=user_pass[0],
    password=user_pass[1]
)

cursor = conn.cursor(cursor_factory=RealDictCursor)

# Test the exact query from views.py
query = """
    SELECT s.*, 
           c.name as customer_name,
           CONCAT(COALESCE(cont.first_name, ''), ' ', COALESCE(cont.last_name, '')) as kontakt_navn
    FROM sag_sager s
    LEFT JOIN customers c ON s.customer_id = c.id
    LEFT JOIN LATERAL (
        SELECT cc.contact_id 
        FROM contact_companies cc
        WHERE cc.customer_id = c.id
        ORDER BY cc.is_primary DESC NULLS LAST, cc.id ASC
        LIMIT 1
    ) cc_first ON true
    LEFT JOIN contacts cont ON cc_first.contact_id = cont.id
    WHERE s.deleted_at IS NULL
    ORDER BY s.created_at DESC
    LIMIT 5
"""

cursor.execute(query)
rows = cursor.fetchall()

print("Query results:")
print("-" * 80)
for row in rows:
    print(f"ID: {row['id']}, Titel: {row['titel'][:30]}, Customer: {row.get('customer_name')}, Kontakt: {row.get('kontakt_navn')}")

conn.close()
