import time
import random
from bs4 import BeautifulSoup
from scripts.scrap.driver_setup import safe_get


def parse_car(driver, url):
    if not safe_get(driver, url):
        return None

    time.sleep(random.uniform(0.6, 1.4))
    soup = BeautifulSoup(driver.page_source, "lxml")

    title = soup.select_one(".offer__title")
    price = soup.select_one(".offer__price")
    breadcrumbs = soup.select(".breadcrumbs li")

    params = {}
    for block in soup.select(".offer__parameters dl"):
        dt_elements = block.find_all("dt")
        dd_elements = block.find_all("dd")
        for dt, dd in zip(dt_elements, dd_elements):
            params[dt.get_text(strip=True)] = dd.get_text(strip=True)

    return {
        "title": title.get_text(strip=True) if title else "N/A",
        "price": price.get_text(strip=True) if price else "N/A",
        "model": breadcrumbs[-2].get_text(strip=True) if len(breadcrumbs) > 1 else "N/A",
        "submodel": breadcrumbs[-1].get_text(strip=True) if breadcrumbs else "N/A",
        **params
    }
