# =============================================================================
# OmniTrace™ FraudGuard — Self-Installing Python Anti-Fraud Tracker
# Single-File Drop-in Module for Fraud Prevention & GPS Signal Verification
# =============================================================================
import os
import sys
import json
import urllib.request

class FraudShieldTracker:
    def __init__(self, api_url='https://creatorwharehouse.com'):
        self.api_url = api_url.rstrip('/')

    def verify_request(self, phone_number, client_ip, latitude=None, longitude=None):
        payload = {'phone_number': phone_number, 'client_ip': client_ip, 'latitude': latitude, 'longitude': longitude}
        req = urllib.request.Request(f'{self.api_url}/api/demo/gps-tracer/verify-caller', data=json.dumps(payload).encode(), headers={'Content-Type': 'application/json'})
        try:
            with urllib.request.urlopen(req, timeout=5) as r:
                return json.loads(r.read().decode())
        except Exception as e:
            return {'status': 'FALLBACK_SAFE', 'is_fraudulent': False, 'error': str(e)}

    @classmethod
    def install_into_fastapi(cls, app, api_url='https://creatorwharehouse.com'):
        tracker = cls(api_url=api_url)
        @app.middleware('http')
        async def fraud_middleware(request, call_next):
            request.state.fraud_tracker = tracker
            return await call_next(request)
        print('[OmniTrace] FraudGuard successfully installed into FastAPI.')
