from flask import Flask, request, jsonify
import psycopg2
import psycopg2.extras
import time
import random
from datetime import datetime

app = Flask(__name__)

# Конфигурация базы данных
DB_CONFIG = {
    'host': '127.0.0.1',
    'database': 'aliexpress_automation',
    'user': 'postgres',
    'password': 'PostgresPass123'
}

def get_db_connection():
    try:
        conn = psycopg2.connect(**DB_CONFIG)
        return conn
    except Exception as e:
        print(f"Database connection error: {e}")
        return None

@app.route('/workflow/status', methods=['GET'])
def workflow_status():
    try:
        conn = get_db_connection()
        if not conn:
            return jsonify({'success': False, 'error': 'Database connection failed'}), 500
            
        cursor = conn.cursor()
        cursor.execute("SELECT COUNT(*) FROM products")
        total = cursor.fetchone()[0]
        
        cursor.execute("SELECT COUNT(*) FROM products WHERE DATE(created_at) = CURRENT_DATE")
        today = cursor.fetchone()[0]
        
        cursor.close()
        conn.close()
        
        return jsonify({
            'success': True,
            'status': 'running',
            'total_products': total,
            'products_today': today,
            'timestamp': datetime.now().isoformat()
        })
        
    except Exception as e:
        print(f"Status error: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500

@app.route('/workflow/generate-products', methods=['POST'])
def generate_products():
    try:
        data = request.get_json() or {}
        count = int(data.get('count', 2))
        
        print(f"Generating {count} products...")
        
        # Простые данные для товаров
        titles = [
            'Смартфон Premium', 'Наушники Bluetooth', 'Умные часы',
            'Кроссовки спортивные', 'Лампа LED', 'Колонка портативная'
        ]
        
        categories = ['electronics', 'fashion', 'home', 'beauty']
        
        conn = get_db_connection()
        if not conn:
            return jsonify({'success': False, 'error': 'Database connection failed'}), 500
            
        cursor = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
        
        generated_products = []
        
        for i in range(count):
            title = random.choice(titles)
            category = random.choice(categories)
            price = random.randint(1000, 25000)
            original_price = int(price * 1.3)
            
            product_id = f"simple_{int(time.time())}_{i}"
            
            cursor.execute("""
                INSERT INTO products (
                    aliexpress_id, title, original_description, price, original_price,
                    main_image, category, aliexpress_link, rating, orders_count, status
                ) VALUES (
                    %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'active'
                ) RETURNING id, title, price
            """, (
                product_id,
                title,
                'Качественный товар с быстрой доставкой',
                price,
                original_price,
                'https://via.placeholder.com/300x200?text=Product',
                category,
                f'https://aliexpress.com/item/{product_id}',
                4.5,
                random.randint(100, 1000)
            ))
            
            result = cursor.fetchone()
            if result:
                generated_products.append(dict(result))
        
        conn.commit()
        cursor.close()
        conn.close()
        
        print(f"Successfully generated {len(generated_products)} products")
        
        return jsonify({
            'success': True,
            'message': f'Создано {len(generated_products)} товаров',
            'products': generated_products
        })
        
    except Exception as e:
        print(f"Generate products error: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500

@app.route('/health', methods=['GET'])
def health_check():
    return jsonify({
        'success': True,
        'message': 'Simple Workflow API работает',
        'timestamp': datetime.now().isoformat()
    })

if __name__ == '__main__':
    print("🚀 Запуск Simple Workflow API на порту 5679")
    try:
        app.run(host='0.0.0.0', port=5679, debug=True)
    except Exception as e:
        print(f"Failed to start server: {e}")
