// Типы товаров
export interface Product {
  id: string;
  name: string;
  articleId: string;
  price: number;
  image: string;
  brand?: string;
}

// Данные о товаре из парсера
export interface ProductData {
  name: string;
  brand: string;
  price: number;
  article: string;
  imageUrl: string;
}

// Типы позиций товаров в городах (новая структура)
export interface CityPosition {
  city: string;
  position: number | null;
  page?: number | null;
  positionOnPage?: number | null;
}

// Старая структура для совместимости
export interface LegacyCityPosition {
  city: string;
  myPage: number | string;
  myPosition: number | string;
  competitorPage?: number | string;
  competitorPosition?: number | string;
}

// Типы данных для графика
export interface ChartDataPoint {
  city: string;
  myPosition: number;
  competitorPosition: number;
}

// Типы истории поисков
export interface HistoryRecord {
  id: string;
  date: string;
  query: string;
  myArticleId: string;
  competitorArticleId?: string;
  positions: {
    city: string;
    rank: number;
    pageRank: number;
    competitorRank?: number;
    competitorPageRank?: number;
  }[];
  hasCompetitor?: boolean;
}

// Запрос на поиск
export interface SearchRequest {
  query: string;
  myArticleId: string;
  competitorArticleId?: string;
}

// Новая структура ответа API - теперь поддерживает множественные товары
export interface SearchResponse {
  products: ProductData[]; // Массив всех найденных товаров
  positions: { [articleId: string]: CityPosition[] }; // Позиции для каждого артикула
  myArticleId: string; // ID основного товара
  competitorArticleId?: string; // ID товара конкурента (если есть)
}

// Старая структура для совместимости
export interface LegacySearchResponse {
  query: string;
  products: {
    my: Product;
    competitor?: Product | null;
  };
  positions: LegacyCityPosition[];
  chartData: ChartDataPoint[];
}

// Города для поиска
export const CITIES = [
  'Москва',
  'Санкт-Петербург',
  'Казань',
  'Екатеринбург',
  'Новосибирск',
  'Краснодар',
  'Хабаровск',
];

// Города для поиска с кодами WB
export const CITY_CODES = {
  Москва: 'msk',
  'Санкт-Петербург': 'spb',
  Новосибирск: 'nsk',
  Екатеринбург: 'ekb',
  Казань: 'kzn',
  Краснодар: 'krd',
  Хабаровск: 'khv',
};
