from __future__ import annotations from abc import ABC, abstractmethod from dataclasses import dataclass, field from typing import Any from bom_assistant.session.models import NormalizedParams @dataclass class SearchResult: count: int page: int page_size: int items: list[dict[str, Any]] error: str | None = None class SupplierAdapter(ABC): def __init__(self, api_token: str | None = None) -> None: self.api_token = api_token @abstractmethod def search( self, category_id: int, params: NormalizedParams, filters: dict[str, Any] | None = None, page: int = 1, ) -> SearchResult: ...