import type {
  TelematicsProduct,
  TelematicsCatalogStats,
  CreateTelematicsProductPayload,
  UpdateTelematicsProductPayload,
} from "@/domain/entities/telematics-product";
import type { BackendPaginatedData, PaginationQueryParams } from "@/shared/types";

export interface TelematicsCatalogRepository {
  findAll(params: PaginationQueryParams): Promise<BackendPaginatedData<TelematicsProduct>>;
  findById(id: number): Promise<TelematicsProduct>;
  create(data: CreateTelematicsProductPayload): Promise<TelematicsProduct>;
  update(id: number, data: UpdateTelematicsProductPayload): Promise<TelematicsProduct>;
  delete(id: number): Promise<void>;
  getStats(): Promise<TelematicsCatalogStats>;
  getNeedsSuggestions(): Promise<string[]>;
}
