import React, { useState } from 'react';
import { TrendingUp, TrendingDown, AlertCircle, ChevronDown, ChevronUp, Search, DollarSign } from 'lucide-react';
const RockCrystalComparison = () => {
const [expandedItems, setExpandedItems] = useState({});
const [selectedCategory, setSelectedCategory] = useState('Все');
const [searchTerm, setSearchTerm] = useState('');
const [priceFilter, setPriceFilter] = useState('all'); // 'all', 'cheaper', 'expensive'
const comparisons = [
{
category: 'Салаты',
dish: 'Цезарь с курицей',
rockCrystal: 3700,
competitors: [
{ name: 'Гриль-бар', price: 3100, diff: -600, percent: -16 },
{ name: 'Ухоимедведь', price: 3495, diff: -205, percent: -6 }
]
},
{
category: 'Салаты',
dish: 'Греческий салат',
rockCrystal: 3400,
competitors: [
{ name: 'Гриль-бар', price: 2800, diff: -600, percent: -18 },
{ name: 'Ухоимедведь', price: 3095, diff: -305, percent: -9 }
]
},
{
category: 'Салаты',
dish: 'Цезарь с креветками',
rockCrystal: 4400,
competitors: [
{ name: 'Гриль-бар', price: 4000, diff: -400, percent: -9 },
{ name: 'Ухоимедведь', price: 3795, diff: -605, percent: -14 }
]
},
{
category: 'Салаты',
dish: 'Теплый салат (телятина/конина)',
rockCrystal: 4500,
competitors: [
{ name: 'Гриль-бар', price: 4500, diff: 0, percent: 0 },
{ name: 'Ухоимедведь', price: 3595, diff: -905, percent: -20 }
]
},
{
category: 'Супы',
dish: 'Том-ям',
rockCrystal: 4500,
competitors: [
{ name: 'Гриль-бар', price: 4100, diff: -400, percent: -9 },
{ name: 'Ухоимедведь', price: 4295, diff: -205, percent: -5 }
]
},
{
category: 'Супы',
dish: 'Рамен (телятина/говядина)',
rockCrystal: 3900,
competitors: [
{ name: 'Гриль-бар', price: 3900, diff: 0, percent: 0 },
{ name: 'Ухоимедведь', price: 3795, diff: -105, percent: -3 }
]
},
{
category: 'Пицца',
dish: 'Маргарита',
rockCrystal: 3300,
competitors: [
{ name: 'Гриль-бар', price: 5800, diff: 2500, percent: 76 },
{ name: 'Ухоимедведь', price: 3395, diff: 95, percent: 3 }
]
},
{
category: 'Пицца',
dish: 'Пепперони',
rockCrystal: 4100,
competitors: [
{ name: 'Гриль-бар', price: 6500, diff: 2400, percent: 59 },
{ name: 'Ухоимедведь', price: 3595, diff: -505, percent: -12 }
]
},
{
category: 'Пицца',
dish: '4 сыра',
rockCrystal: 4300,
competitors: [
{ name: 'Гриль-бар', price: 7500, diff: 3200, percent: 74 }
]
},
{
category: 'Горячее',
dish: 'Рибай стейк',
rockCrystal: 9400,
competitors: [
{ name: 'Гриль-бар', price: 8200, diff: -1200, percent: -13 },
{ name: 'Ухоимедведь', price: 7995, diff: -1405, percent: -15 }
]
},
{
category: 'Горячее',
dish: 'Стейк из лосося/семги',
rockCrystal: 8200,
competitors: [
{ name: 'Гриль-бар', price: 9800, diff: 1600, percent: 20 },
{ name: 'Ухоимедведь', price: 7195, diff: -1005, percent: -12 }
]
},
{
category: 'Горячее',
dish: 'Медальоны из телятины',
rockCrystal: 8900,
competitors: [
{ name: 'Гриль-бар', price: 6500, diff: -2400, percent: -27 }
]
},
{
category: 'Горячие закуски',
dish: 'Мини чебуреки',
rockCrystal: 2800,
competitors: [
{ name: 'Гриль-бар', price: 3200, diff: 400, percent: 14 }
]
},
{
category: 'Горячие закуски',
dish: 'Сырные палочки',
rockCrystal: 3700,
competitors: [
{ name: 'Гриль-бар', price: 3100, diff: -600, percent: -16 }
]
},
{
category: 'Паста',
dish: 'Паста с креветками',
rockCrystal: null,
competitors: [
{ name: 'Гриль-бар', price: 5700 },
{ name: 'Ухоимедведь', price: 4495 }
],
note: 'Отсутствует в Rock Crystal'
},
{
category: 'Десерты',
dish: 'Чизкейк',
rockCrystal: 3200,
competitors: [
{ name: 'Гриль-бар', price: 3550, diff: 350, percent: 11 },
{ name: 'Ухоимедведь', price: 3295, diff: 95, percent: 3 }
]
},
{
category: 'Десерты',
dish: 'Фруктовая нарезка/тарелка',
rockCrystal: 8900,
competitors: [
{ name: 'Гриль-бар', price: 9500, diff: 600, percent: 7 }
]
},
{
category: 'Банкет',
dish: 'Бешбармак',
rockCrystal: 51000,
competitors: [
{ name: 'Гриль-бар', price: 45500, diff: -5500, percent: -11 },
{ name: 'Ухоимедведь', price: 49995, diff: -1005, percent: -2 }
]
},
{
category: 'Гарниры',
dish: 'Картофель фри',
rockCrystal: 1600,
competitors: [
{ name: 'Гриль-бар', price: 1500, diff: -100, percent: -6 },
{ name: 'Ухоимедведь', price: 1495, diff: -105, percent: -7 }
]
},
{
category: 'Гарниры',
dish: 'Рис',
rockCrystal: 950,
competitors: [
{ name: 'Ухоимедведь', price: 1195, diff: 245, percent: 26 }
]
}
];
const categories = ['Все', ...new Set(comparisons.map(c => c.category))];
const filteredData = comparisons.filter(item => {
const matchesCategory = selectedCategory === 'Все' || item.category === selectedCategory;
const matchesSearch = item.dish.toLowerCase().includes(searchTerm.toLowerCase());
if (!matchesCategory || !matchesSearch) return false;
if (priceFilter === 'cheaper') {
return item.competitors.some(c => c.diff && c.diff < 0);
}
if (priceFilter ==='expensive') {
return item.competitors.some(c => c.diff && c.diff > 0);
}
return true;
});
const stats = {
cheaper: comparisons.filter(c => c.competitors.some(comp => comp.diff && comp.diff < 0)).length,
moreExpensive: comparisons.filter(c => c.competitors.some(comp => comp.diff && comp.diff > 0)).length,
same: comparisons.filter(c => c.competitors.some(comp => comp.diff === 0)).length,
totalCompetitorCheaper: 0,
totalRockCrystalCheaper: 0
};
comparisons.forEach(c => {
c.competitors.forEach(comp => {
if (comp.diff && comp.diff < 0) stats.totalCompetitorCheaper++;
if (comp.diff && comp.diff > 0) stats.totalRockCrystalCheaper++;
});
});
return (
Анализ конкурентов Rock Crystal
Сравнение цен на идентичные позиции меню
Всего сравнений
{comparisons.length}
Конкуренты дешевле
{stats.totalCompetitorCheaper}
позиций
Rock Crystal дешевле
{stats.totalRockCrystalCheaper}
позиций
Одинаковые цены
{stats.same}
блюд
setSearchTerm(e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg"
/>
{categories.map(cat => (
))}
{filteredData.map((item, idx) => {
const isExpanded = expandedItems[idx];
const hasCheaperCompetitor = item.competitors.some(c => c.diff && c.diff < 0);
const hasExpensiveCompetitor = item.competitors.some(c => c.diff && c.diff > 0);
return (
setExpandedItems(prev => ({ ...prev, [idx]: !prev[idx] }))}
>
{item.category}
{item.note && (
{item.note}
)}
{item.dish}
Rock Crystal
{item.rockCrystal ? `${item.rockCrystal.toLocaleString()} тг` : 'Нет в меню'}
{item.rockCrystal && (
{item.competitors.map((comp, i) => (
{comp.name}
0 ? 'text-green-600' :
'text-gray-600'
}`}>
{comp.diff !== undefined ? (
comp.diff === 0 ? '=' :
comp.diff > 0 ? `+${comp.diff.toLocaleString()}` :
comp.diff.toLocaleString()
) : ''}
{comp.percent !== undefined && ` (${comp.percent > 0 ? '+' : ''}${comp.percent}%)`}
))}
)}
{isExpanded ? : }
{isExpanded && (
Rock Crystal (базовая цена)
{item.rockCrystal ? `${item.rockCrystal.toLocaleString()} тг` : 'Нет в меню'}
{item.competitors.map((comp, i) => (
0 ? 'border-green-500 bg-green-50' :
'border-gray-300 bg-gray-50'
}`}
>
{comp.name}
{comp.price.toLocaleString()} тг
{comp.diff !== undefined && (
0 ? 'text-green-700' :
'text-gray-700'
}`}>
{comp.diff === 0 ? 'Одинаковая цена' :
comp.diff < 0 ? `Дешевле на ${Math.abs(comp.diff).toLocaleString()} тг` :
`Дороже на ${comp.diff.toLocaleString()} тг`}
{comp.percent > 0 ? '+' : ''}{comp.percent}% от Rock Crystal
)}
))}
)}
);
})}
Ключевые выводы для Rock Crystal:
- • Пицца: Гриль-бар на 59-76% дороже. Преимущество Rock Crystal!
- • Стейки: Конкуренты дешевле на 12-15%. Рассмотреть корректировку цен
- • Салаты: Все конкуренты дешевле на 6-20%. Зона улучшения
- • Супы: Конкурентные цены, разница 3-9%
- • Рекомендация: Добавить пасту с креветками - есть у обоих конкурентов
);
};
export default RockCrystalComparison;