import React, { useState } from 'react';
import { TrendingUp, TrendingDown, Target, AlertCircle, CheckCircle, DollarSign, BarChart3 } from 'lucide-react';
const ProductAnalysisTable = () => {
const [exchangeRate] = useState(5.20); // USD para BRL (taxa atual aproximada)
const products = [
{
id: 1,
name: "Sigma 50-200mm f/4.0-5.6",
description: "Zoom into Perfection",
originalPrice: 229.99,
salePrice: 126.50,
discount: 103.49,
category: "Lentes",
brand: "Sigma",
marketDemand: "Alta",
competitiveness: "Média",
shelfLife: "Longo",
weightKg: 1.1, // Lente zoom padrão
dimensions: "20x15x15 cm"
},
{
id: 2,
name: "Sigma 120-400mm Lens",
description: "Capture the Unseen",
originalPrice: 1049.99,
salePrice: 649.99,
discount: 400.00,
category: "Lentes",
brand: "Sigma",
marketDemand: "Média",
competitiveness: "Baixa",
shelfLife: "Longo",
weightKg: 2.8, // Lente telefoto grande
dimensions: "35x25x25 cm"
},
{
id: 3,
name: "Canon EOS Rebel T5i Premium Kit",
description: "Elevate Your Photography",
originalPrice: 329.99,
salePrice: 250.00,
discount: 79.99,
category: "Câmeras",
brand: "Canon",
marketDemand: "Alta",
competitiveness: "Média",
shelfLife: "Médio",
weightKg: 1.5, // Kit câmera com acessórios
dimensions: "30x25x20 cm"
},
{
id: 4,
name: "Battery Grip BG-E8",
description: "Extend Your Photography Sessions",
originalPrice: 189.77,
salePrice: 79.77,
discount: 110.00,
category: "Fotografia",
brand: "Canon",
marketDemand: "Alta",
competitiveness: "Média",
shelfLife: "Longo",
weightKg: 0.8, // Peso aproximado em kg
dimensions: "14x12x8 cm"
},
{
id: 5,
name: "Citizen Watch Promaster NY0125-83E",
description: "Relógio Mergulho Profissional",
originalPrice: 379.00,
salePrice: 160.00,
discount: 219.00,
category: "Relógios",
brand: "Citizen",
marketDemand: "Média",
competitiveness: "Alta",
shelfLife: "Muito Longo",
weightKg: 0.4, // Relógio de aço
dimensions: "15x15x5 cm"
},
{
id: 6,
name: "Bulova 98B423 Marine Star",
description: "Relógio Esportivo Marinho",
originalPrice: 320.77,
salePrice: 155.00,
discount: 165.77,
category: "Relógios",
brand: "Bulova",
marketDemand: "Média",
competitiveness: "Alta",
shelfLife: "Muito Longo",
weightKg: 0.35, // Relógio com pulseira metálica
dimensions: "15x15x4 cm"
},
{
id: 7,
name: "Citizen Eco-Drive Weekender",
description: "Relógio Solar Casual",
originalPrice: 200.00,
salePrice: 135.00,
discount: 65.00,
category: "Relógios",
brand: "Citizen",
marketDemand: "Alta",
competitiveness: "Média",
shelfLife: "Muito Longo",
weightKg: 0.3, // Relógio com pulseira de couro
dimensions: "12x12x3 cm"
},
{
id: 8,
name: "Sony ZV-1F Vlogging Camera",
description: "Câmera para Vlogging - Bundle Preto",
originalPrice: 599.77,
salePrice: 430.00,
discount: 169.77,
category: "Câmeras",
brand: "Sony",
marketDemand: "Muito Alta",
competitiveness: "Baixa",
shelfLife: "Médio",
weightKg: 1.2, // Câmera + acessórios do bundle
dimensions: "25x20x15 cm"
}
];
const calculateBrazilianPrices = (product) => {
const costBRL = product.salePrice * exchangeRate;
const importTax = costBRL * 0.60; // Taxa de importação aproximada
// Cálculo do frete baseado no peso (USD 75 por kg)
const shippingCostUSD = product.weightKg * 75;
const shippingCostBRL = shippingCostUSD * exchangeRate;
const totalCost = costBRL + importTax + shippingCostBRL;
// Margens sugeridas baseadas na categoria e demanda
const margins = {
"Fotografia": { quick: 1.3, standard: 1.5, premium: 1.8 },
"Relógios": { quick: 1.4, standard: 1.7, premium: 2.1 },
"Câmeras": { quick: 1.2, standard: 1.4, premium: 1.6 },
"Lentes": { quick: 1.35, standard: 1.6, premium: 1.9 }
};
const categoryMargins = margins[product.category];
return {
costBRL: Math.round(costBRL),
importTax: Math.round(importTax),
shippingCostBRL: Math.round(shippingCostBRL),
shippingCostUSD: Math.round(shippingCostUSD),
totalCost: Math.round(totalCost),
quickSale: Math.round(totalCost * categoryMargins.quick),
standardPrice: Math.round(totalCost * categoryMargins.standard),
premiumPrice: Math.round(totalCost * categoryMargins.premium)
};
};
const getPredictiveAnalysis = (product) => {
const analysis = calculateBrazilianPrices(product);
const profitQuick = analysis.quickSale - analysis.totalCost;
const marginQuick = ((profitQuick / analysis.quickSale) * 100).toFixed(1);
let recommendation = "";
let priority = "";
let timeToSell = "";
if (product.marketDemand === "Muito Alta") {
recommendation = "Venda Rápida Recomendada";
priority = "Alta";
timeToSell = "7-15 dias";
} else if (product.marketDemand === "Alta") {
recommendation = "Preço Competitivo";
priority = "Média-Alta";
timeToSell = "15-30 dias";
} else {
recommendation = "Estratégia de Nicho";
priority = "Média";
timeToSell = "30-60 dias";
}
return {
...analysis,
profitQuick,
marginQuick,
recommendation,
priority,
timeToSell
};
};
const getDemandIcon = (demand) => {
switch (demand) {
case "Muito Alta": return ;
case "Alta": return ;
case "Média": return ;
default: return ;
}
};
const getPriorityBadge = (priority) => {
const colors = {
"Alta": "bg-red-100 text-red-800",
"Média-Alta": "bg-orange-100 text-orange-800",
"Média": "bg-yellow-100 text-yellow-800",
"Baixa": "bg-gray-100 text-gray-800"
};
return (
{priority}
);
};
const totalShippingCost = products.reduce((sum, product) => {
const analysis = calculateBrazilianPrices(product);
return sum + analysis.shippingCostBRL;
}, 0);
const totalWeight = products.reduce((sum, product) => sum + product.weightKg, 0);
const totalInvestment = products.reduce((sum, product) => {
const analysis = calculateBrazilianPrices(product);
return sum + analysis.totalCost;
}, 0);
const totalQuickRevenue = products.reduce((sum, product) => {
const analysis = calculateBrazilianPrices(product);
return sum + analysis.quickSale;
}, 0);
const totalProfit = totalQuickRevenue - totalInvestment;
const overallMargin = ((totalProfit / totalQuickRevenue) * 100).toFixed(1);
return (
Análise Preditiva de Produtos - Estratégia Brasil
Taxa de câmbio: USD 1,00 = BRL {exchangeRate.toFixed(2)}
{/* Resumo Executivo */}
Produtos
{products.length}
Peso Total
{totalWeight.toFixed(1)} kg
Frete Total
R$ {totalShippingCost.toLocaleString('pt-BR')}
Investimento
R$ {totalInvestment.toLocaleString('pt-BR')}
Receita
R$ {totalQuickRevenue.toLocaleString('pt-BR')}
Lucro
R$ {totalProfit.toLocaleString('pt-BR')}
{overallMargin}%
{/* Tabela Principal */}
Análise Detalhada por Produto
Produto (Peso/Dimensões)
Custo + Frete (BRL)
Custo Total Final
Preço Venda Rápida
Margem de Lucro
Demanda
Prioridade
Tempo Estimado
{products.map((product) => {
const analysis = getPredictiveAnalysis(product);
return (
{product.name}
{product.brand} | {product.category}
{product.weightKg}kg • {product.dimensions}
${product.salePrice.toFixed(2)}
+ ${analysis.shippingCostUSD} frete
(Era: ${product.originalPrice.toFixed(2)})
R$ {analysis.totalCost.toLocaleString('pt-BR')}
Produto: R$ {analysis.costBRL}
Taxas: R$ {analysis.importTax}
Frete: R$ {analysis.shippingCostBRL}
R$ {analysis.quickSale.toLocaleString('pt-BR')}
Padrão: R$ {analysis.standardPrice.toLocaleString('pt-BR')}
R$ {analysis.profitQuick.toLocaleString('pt-BR')}
{analysis.marginQuick}%
{getDemandIcon(product.marketDemand)}
{product.marketDemand}
{getPriorityBadge(analysis.priority)}
{analysis.timeToSell}
);
})}
{/* Análise Preditiva por Categoria */}
Recomendações Prioritárias
Sigma 120-400mm
Produto mais pesado: R$ {calculateBrazilianPrices(products[1]).shippingCostBRL} de frete (2.8kg)
Lentes Profissionais
Alta demanda em São Paulo. Nicho fotográfico consolidado.
Total: {totalWeight.toFixed(1)}kg
Frete: R$ {totalShippingCost.toLocaleString('pt-BR')} ({(totalShippingCost/totalInvestment*100).toFixed(1)}% do investimento)
Estratégias de Preço
Lentes Sigma
Nicho técnico. Preço competitivo vs. originais Canon/Nikon.
Canon T5i Kit
Entrada DSLR. Concorrer com mirrorless entry-level.
Relógios
Baixo frete, alta margem. Parcelamento atrativo.
Projeção de Vendas
30 dias
60% vendido
60 dias
85% vendido
90 dias
100% vendido
*Lentes podem demorar mais (nicho técnico)
{/* Insights Finais */}
💡 Insights e Recomendações Finais
Estratégia de Venda Rápida:
- • Priorizar Sony ZV-1F e Canon T5i (alta demanda)
- • Sigma 50-200mm: boa relação peso/preço
- • Relógios: venda rápida com parcelamento
- • Lentes profissionais: nicho específico
Riscos e Mitigação:
- • Frete representa {(totalShippingCost/totalInvestment*100).toFixed(1)}% do investimento
- • Sigma 120-400mm: maior custo de frete (R$ {calculateBrazilianPrices(products[1]).shippingCostBRL})
- • Produtos pesados: negociar frete consolidado
- • Portfolio diversificado reduz riscos
);
};
export default ProductAnalysisTable;