/**
 * 🔄 V2 КОМПОНЕНТ ДЛЯ ОТОБРАЖЕНИЯ ПОСТАВОК
 * Поддерживает как V1, так и V2 системы через feature flag
 */

'use client'

import { useQuery } from '@apollo/client'
import { useState } from 'react'

import { GET_MY_SELLER_GOODS_SUPPLIES } from '@/graphql/mutations/seller-goods-v2'
import { GET_MY_SUPPLY_ORDERS } from '@/graphql/queries'

interface SuppliesDashboardV2Props {
  selectedTab: string
}

export function SuppliesDashboardV2({ selectedTab }: SuppliesDashboardV2Props) {
  const USE_V2_GOODS_SYSTEM = process.env.NEXT_PUBLIC_USE_V2_GOODS === 'true'
  
  // V1 запрос - для обратной совместимости
  const { 
    data: v1Data, 
    loading: v1Loading, 
    error: v1Error, 
  } = useQuery(GET_MY_SUPPLY_ORDERS, {
    skip: USE_V2_GOODS_SYSTEM && selectedTab === 'goods',
  })
  
  // V2 запрос - для товарных поставок
  const { 
    data: v2Data, 
    loading: v2Loading, 
    error: v2Error, 
  } = useQuery(GET_MY_SELLER_GOODS_SUPPLIES, {
    skip: !USE_V2_GOODS_SYSTEM || selectedTab !== 'goods',
  })
  
  // Объединяем данные в зависимости от системы
  const getGoodsSupplies = () => {
    if (selectedTab !== 'goods') return []
    
    if (USE_V2_GOODS_SYSTEM) {
      // V2 система - прямые данные
      return v2Data?.mySellerGoodsSupplies || []
    } else {
      // V1 система - фильтруем по типу
      return (v1Data?.mySupplyOrders || []).filter(
        (supply: any) => supply.consumableType !== 'SELLER_CONSUMABLES',
      )
    }
  }
  
  const getConsumablesSupplies = () => {
    if (selectedTab !== 'consumables') return []
    
    // Расходники пока остаются в V1
    return (v1Data?.mySupplyOrders || []).filter(
      (supply: any) => supply.consumableType === 'SELLER_CONSUMABLES',
    )
  }
  
  const loading = v1Loading || v2Loading
  const error = v1Error || v2Error
  
  if (loading) return <div>Загрузка...</div>
  if (error) return <div>Ошибка: {error.message}</div>
  
  const supplies = selectedTab === 'goods' ? getGoodsSupplies() : getConsumablesSupplies()
  
  return (
    <div>
      {USE_V2_GOODS_SYSTEM && selectedTab === 'goods' && (
        <div className="mb-4 p-2 bg-blue-50 text-blue-700 rounded">
          🆕 Используется V2 система товарных поставок
        </div>
      )}
      
      {supplies.length === 0 ? (
        <div>Нет поставок</div>
      ) : (
        <div className="space-y-4">
          {supplies.map((supply: any) => (
            <div key={supply.id} className="border p-4 rounded">
              <h3>Поставка #{supply.id}</h3>
              <p>Статус: {supply.status}</p>
              <p>Дата: {new Date(supply.createdAt).toLocaleDateString()}</p>
              {USE_V2_GOODS_SYSTEM && supply.recipeItems && (
                <p>Товаров: {supply.recipeItems.filter((i: any) => i.recipeType === 'MAIN_PRODUCT').length}</p>
              )}
            </div>
          ))}
        </div>
      )}
    </div>
  )
}