#!/usr/bin/env python3
"""AgencyFunnel API - Captures leads, tracks conversions"""
import sqlite3, json
from http.server import HTTPServer, BaseHTTPRequestHandler
from datetime import datetime

DB = "/home/opc/agencyfunnel/data.db"

def init():
    conn = sqlite3.connect(DB)
    c = conn.cursor()
    c.execute("""CREATE TABLE IF NOT EXISTS leads (
        id INTEGER PRIMARY KEY, email TEXT, source TEXT,
        captured_at TEXT, converted INTEGER DEFAULT 0
    )""")
    conn.commit()
    conn.close()

class Handler(BaseHTTPRequestHandler):
    def log_message(self, *a): pass
    
    def do_GET(self):
        path = self.path
        file_map = {'/': '/squeeze/index.html', '/vsl': '/squeeze/vsl.html'}
        
        if path in file_map:
            try:
                with open(f"/home/opc/agencyfunnel{file_map[path]}") as f:
                    content = f.read()
                self.send_response(200)
                self.send_header("Content-Type", "text/html")
                self.end_headers()
                self.wfile.write(content.encode())
            except:
                self.send_error(404)
        else:
            self.send_error(404)
    
    def do_POST(self):
        if self.path == "/api/capture":
            length = int(self.headers.get('Content-Length', 0))
            body = json.loads(self.rfile.read(length))
            
            conn = sqlite3.connect(DB)
            c = conn.cursor()
            c.execute("INSERT INTO leads (email, source, captured_at) VALUES (?, ?, ?)",
                     (body.get('email'), body.get('source'), datetime.now().isoformat()))
            conn.commit()
            conn.close()
            
            self.send_response(200)
            self.send_header("Content-Type", "application/json")
            self.end_headers()
            self.wfile.write(json.dumps({"status": "captured"}).encode())
        else:
            self.send_error(404)

def run():
    init()
    server = HTTPServer(("0.0.0.0", 8888), Handler)
    print("Funnel running on http://0.0.0.0:8888")
    server.serve_forever()

if __name__ == "__main__":
    run()
