import re
import json
import urllib.request
import urllib.error

# Parse the generated SQL file to extract exercise data
sql_file = r'a:/merobody/backend/fitnep_api/exercise/import_rows.sql'
exercises = []

with open(sql_file, 'r', encoding='utf-8') as f:
    content = f.read()

# Find all INSERT statements
pattern = r"INSERT INTO exercises \([^)]+\) VALUES \(([^)]+)\)"
matches = re.finditer(pattern, content)

for match in matches:
    values_str = match.group(1)
    # Parse the values - handle quoted strings with escaped quotes
    values = []
    current = ''
    in_quotes = False
    for char in values_str:
        if char == "'" and (len(current) == 0 or current[-1] != "\\"):
            in_quotes = not in_quotes
        elif char == ',' and not in_quotes:
            values.append(current.strip())
            current = ''
            continue
        current += char
    values.append(current.strip())
    
    if len(values) >= 11:
        # Remove quotes and unescape
        def clean_value(v):
            v = v.strip()
            if v.startswith("'") and v.endswith("'"):
                v = v[1:-1]
            v = v.replace("''", "'")
            return v
        
        try:
            exercise = {
                'external_id': clean_value(values[0]),
                'name': clean_value(values[1]),
                'muscles': clean_value(values[2]),
                'category': clean_value(values[3]),
                'equipment': clean_value(values[4]),
                'instruction': clean_value(values[5]),
                'video_url': clean_value(values[6]),
                'image_url': clean_value(values[7]),
                'gif_url': clean_value(values[8]),
                'default_sets': int(values[9].strip()),
                'default_reps': int(values[10].strip()),
            }
            exercises.append(exercise)
        except Exception as e:
            print(f"Error parsing: {e}")
            continue

print(f'Parsed {len(exercises)} exercises from SQL file')

# Send to live backend
url = 'https://fitnep.drsubashpandey.com.np/api/exercise/bulk_import.php'
admin_token = 'your_admin_token_here'

payload = json.dumps({'exercises': exercises}).encode('utf-8')
req = urllib.request.Request(
    url,
    data=payload,
    headers={
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {admin_token}',
        'User-Agent': 'MerobodyImporter/1.0',
    },
    method='POST',
)

try:
    with urllib.request.urlopen(req, timeout=120) as response:
        result = json.load(response)
        print(f"Upload result: {json.dumps(result, indent=2)}")
except urllib.error.URLError as e:
    print(f"Error uploading: {e}")
except Exception as e:
    print(f"Unexpected error: {e}")
