36 lines
912 B
Python
36 lines
912 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Any
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MobileDeListing:
|
|
"""One listing extracted from mobile.de search results."""
|
|
|
|
id: str
|
|
url: str
|
|
title: str | None = None
|
|
subtitle: str | None = None
|
|
price: str | None = None
|
|
seller_name: str | None = None
|
|
seller_type: str | None = None
|
|
location: str | None = None
|
|
first_registration: str | None = None
|
|
mileage: str | None = None
|
|
power: str | None = None
|
|
fuel: str | None = None
|
|
transmission: str | None = None
|
|
raw: dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MobileDeSearchPage:
|
|
"""Parsed mobile.de search page."""
|
|
|
|
url: str
|
|
page_number: int
|
|
total_results: int | None
|
|
listings: list[MobileDeListing]
|
|
raw_search_results: dict[str, Any] = field(default_factory=dict)
|