import { NextResponse } from 'next/server' import { automationService } from '@/lib/automation-service-simple' export async function POST(request) { try { const config = await request.json() console.log('🚀 Starting automation with config:', config) // Check for open positions before starting automation try { // Temporarily set config for position check const tempConfig = { userId: 'default-user', symbol: config.asset || config.symbol || 'SOLUSD' }; // Set temporary config for position check automationService.setTempConfig(tempConfig); const hasPositions = await automationService.hasOpenPositions(); automationService.clearTempConfig(); if (hasPositions) { console.log('⏸️ Cannot start automation - open positions detected'); return NextResponse.json({ success: false, error: 'Cannot start automation while positions are open', message: 'Please close existing positions before starting new automation' }, { status: 400 }); } } catch (error) { console.error('Error checking positions before automation start:', error); // Continue if position check fails (fail-safe) } // Add a default userId for now (in production, get from auth) const automationConfig = { userId: 'default-user', ...config, // Map asset to symbol if asset is provided symbol: config.asset || config.symbol, // Map simulation to mode mode: config.simulation ? 'SIMULATION' : (config.mode || 'SIMULATION'), // stopLossPercent and takeProfitPercent removed - AI calculates these automatically // Map tradeSize to tradingAmount tradingAmount: config.tradeSize || config.tradingAmount, // Set defaults for missing fields maxDailyTrades: config.maxDailyTrades || 5, dexProvider: config.dexProvider || 'DRIFT', selectedTimeframes: config.selectedTimeframes || [config.timeframe || '1h'] } const success = await automationService.startAutomation(automationConfig) if (success) { return NextResponse.json({ success: true, message: 'Automation started successfully' }) } else { return NextResponse.json({ success: false, error: 'Failed to start automation' }, { status: 500 }) } } catch (error) { console.error('Start automation error:', error) return NextResponse.json({ success: false, error: 'Internal server error', message: error.message, stack: error.stack }, { status: 500 }) } }