import requests
import json
import time
import psycopg2
from datetime import datetime
import re

class SimpleAliExpressParser:
    def __init__(self):
        self.db_config = {
            'host': '127.0.0.1',
            'database': 'aliexpress_automation',
            'user': 'automation_user',
            'password': 'AutoPass123'
        }
        self.session = requests.Session()
        self.session.headers.update({
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
        })
    
    def add_test_products(self):
        """Добавляем тестовые товары для кемпера"""
        print("📦 Добавление тестовых товаров...")
        
        test_products = [
            {
                'title': 'Солнечная панель портативная 100W для кемпера',
                'price': 8500.00,
                'original_price': 12000.00,
                'main_image': 'https://ae01.alicdn.com/kf/S123456789.jpg',
                'aliexpress_link': f'https://www.aliexpress.com/item/{int(time.time())}1001.html',
                'rating': 4.7,
                'orders_count': 156,
                'original_description': 'Портативная солнечная панель мощностью 100W. Идеально подходит для зарядки аккумуляторов в кемпере. Складная конструкция, водонепроницаемая.',
                'category': 'electronics'
            },
            {
                'title': 'Холодильник автомобильный 12V/24V 20L',
                'price': 15900.00,
                'original_price': 22000.00,
                'main_image': 'https://ae01.alicdn.com/kf/S123456790.jpg',
                'aliexpress_link': f'https://www.aliexpress.com/item/{int(time.time())}1002.html',
                'rating': 4.5,
                'orders_count': 89,
                'original_description': 'Автомобильный холодильник объемом 20 литров. Работает от 12V и 24V. Компрессорный, может охлаждать до -20°C.',
                'category': 'comfort'
            },
            {
                'title': 'Газовая плитка туристическая портативная',
                'price': 2800.00,
                'original_price': 4200.00,
                'main_image': 'https://ae01.alicdn.com/kf/S123456791.jpg',
                'aliexpress_link': f'https://www.aliexpress.com/item/{int(time.time())}1003.html',
                'rating': 4.3,
                'orders_count': 234,
                'original_description': 'Портативная газовая плитка для туризма и кемпинга. Работает на баллончиках с резьбой. Компактная и легкая.',
                'category': 'cooking'
            },
            {
                'title': 'Инвертор 12V-220V 1000W чистый синус',
                'price': 5600.00,
                'original_price': 8000.00,
                'main_image': 'https://ae01.alicdn.com/kf/S123456792.jpg',
                'aliexpress_link': f'https://www.aliexpress.com/item/{int(time.time())}1004.html',
                'rating': 4.6,
                'orders_count': 78,
                'original_description': 'Инвертор напряжения 1000W с чистым синусом. Преобразует 12V в 220V. Защита от перегрузки и короткого замыкания.',
                'category': 'electronics'
            },
            {
                'title': 'Фильтр для воды походный керамический',
                'price': 1800.00,
                'original_price': 2500.00,
                'main_image': 'https://ae01.alicdn.com/kf/S123456793.jpg',
                'aliexpress_link': f'https://www.aliexpress.com/item/{int(time.time())}1005.html',
                'rating': 4.4,
                'orders_count': 167,
                'original_description': 'Керамический фильтр для очистки воды в походных условиях. Удаляет бактерии и загрязнения. Компактный размер.',
                'category': 'water'
            }
        ]
        
        try:
            conn = psycopg2.connect(**self.db_config)
            cursor = conn.cursor()
            
            added_count = 0
            
            for product in test_products:
                try:
                    # Проверка на дубликаты
                    cursor.execute("""
                        SELECT id FROM products WHERE aliexpress_link = %s
                    """, (product['aliexpress_link'],))
                    
                    if cursor.fetchone():
                        print(f"⚠️ Товар уже существует: {product['title']}")
                        continue
                    
                    # Вставка товара
                    insert_query = """
                        INSERT INTO products (
                            title, original_description, price, original_price,
                            main_image, category, aliexpress_link, rating, orders_count,
                            status, created_at, updated_at
                        ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
                        RETURNING id
                    """
                    
                    cursor.execute(insert_query, (
                        product['title'],
                        product['original_description'],
                        product['price'],
                        product['original_price'],
                        product['main_image'],
                        product['category'],
                        product['aliexpress_link'],
                        product['rating'],
                        product['orders_count'],
                        'active',
                        datetime.now(),
                        datetime.now()
                    ))
                    
                    product_id = cursor.fetchone()[0]
                    added_count += 1
                    print(f"✅ Добавлен товар #{product_id}: {product['title']}")
                    
                except Exception as e:
                    print(f"❌ Ошибка при добавлении товара {product['title']}: {e}")
            
            conn.commit()
            cursor.close()
            conn.close()
            
            print(f"\n🎉 Добавлено {added_count} тестовых товаров")
            return added_count
            
        except Exception as e:
            print(f"❌ Ошибка подключения к БД: {e}")
            return 0

def main():
    parser = SimpleAliExpressParser()
    parser.add_test_products()

if __name__ == "__main__":
    main()
