#!/usr/bin/env python3
import json, os, glob, shutil
from http.server import HTTPServer, BaseHTTPRequestHandler
from datetime import date

DRAFTS_DIR = '/data/openclaw/leads/drafts'
APPROVED_DIR = '/data/openclaw/leads/approved'

def approve_lead(business_name):
    os.makedirs(APPROVED_DIR, exist_ok=True)
    for f in glob.glob(f"{DRAFTS_DIR}/*.csv"):
        lines = open(f).readlines()
        if not lines: continue
        header = lines[0]
        new_lines = [header]
        approved_row = None
        for line in lines[1:]:
            if business_name.lower() in line.lower():
                approved_row = line.rstrip().rstrip(',') + ',approved\n'
            else:
                new_lines.append(line)
        if approved_row:
            open(f, 'w').writelines(new_lines)
            out = f"{APPROVED_DIR}/approved-{date.today().isoformat()}.csv"
            write_header = not os.path.exists(out)
            with open(out, 'a') as a:
                if write_header: a.write(header)
                a.write(approved_row)
            return True
    return False

class Handler(BaseHTTPRequestHandler):
    def log_message(self, format, *args): pass
    def send_cors(self):
        self.send_header("Access-Control-Allow-Origin", "*")
        self.send_header("Access-Control-Allow-Methods", "POST, OPTIONS")
        self.send_header("Access-Control-Allow-Headers", "Content-Type")
    def do_OPTIONS(self):
        self.send_response(200)
        self.send_cors()
        self.end_headers()
    def do_POST(self):
        length = int(self.headers.get('Content-Length', 0))
        body = json.loads(self.rfile.read(length))
        success = approve_lead(body.get('business_name', ''))
        self.send_response(200)
        self.send_cors()
        self.send_header("Content-Type", "application/json")
        self.end_headers()
        self.wfile.write(json.dumps({"success": success}).encode())

HTTPServer(('', 8081), Handler).serve_forever()
