#!/usr/bin/env python3 """Test contacts API flow: search (masked) → unlock (full).""" import os, json, sys os.environ.setdefault('DATABASE_URL', 'postgresql://seafare:SF_m0ntana_2026@localhost:5432/seafare_db') # Import agent tools directly sys.path.insert(0, '/opt/app') import seafare_agent as agent print('=== API TEST 1: search_contacts "CMB TECH" (masked preview) ===') result = json.loads(agent.execute_tool('search_contacts', {'query': 'CMB TECH'}, is_admin=False, user_id=1)) print(f"Found: {result['found']}") print(f"Note: {result.get('note', '')}") for c in result.get('contacts', [])[:3]: print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')} | unlocked: {c.get('unlocked','')}") print() print('=== API TEST 2: unlock_contacts "CMB TECH" (full data) ===') result = json.loads(agent.execute_tool('unlock_contacts', {'query': 'CMB TECH'}, is_admin=True, user_id=1)) print(f"Found: {result['found']}") print(f"Note: {result.get('note', '')}") for c in result.get('contacts', [])[:3]: print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')} | website: {c.get('website','')}") print() print('=== API TEST 3: search_contacts by MMSI "538003426" ===') result = json.loads(agent.execute_tool('search_contacts', {'query': '538003426'}, is_admin=False, user_id=1)) print(f"Found: {result['found']}") for c in result.get('contacts', [])[:3]: print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')}") print() print('=== API TEST 4: search after unlock (should return purchased, no charge) ===') result = json.loads(agent.execute_tool('search_contacts', {'query': 'CMB TECH'}, is_admin=False, user_id=1)) print(f"Found: {result['found']}") print(f"Note: {result.get('note', '')}") print('\n=== ALL API TESTS DONE ===')