export interface Review {
  id: number;
  name: string;
  surname?: string;
  profession: string;
  text: string;
  rating: number;
  avatar: { initial: string; color: string; };
  date: string;
  votesCount: number;
  isHelpful: boolean;
}

const reviewsRaw = [
  {
    id: 1,
    name: "Алексей М.",
    profession: "Предприниматель",
    text: "Помогли вернуть права после того, как инспектор незаконно составил протокол за встречку. Юрист нашел кучу ошибок в схеме ДТП. Огромное спасибо!",
    rating: 5,
    date: "2024-03-15",
    votesCount: 24,
    isHelpful: true
  },
  {
    id: 2,
    name: "Екатерина П.",
    profession: "Бухгалтер",
    text: "Страховая выплатила копейки по ОСАГО. Обратилась сюда, сделали независимую экспертизу и через суд взыскали еще 120 тысяч. Профессионалы!",
    rating: 5,
    date: "2024-03-10",
    votesCount: 18,
    isHelpful: true
  },
  {
    id: 3,
    name: "Игорь С.",
    profession: "IT-специалист",
    text: "Грамотно разобрали сложное ДТП на перекрестке. Доказали, что я не виноват, хотя ГИБДД изначально решило иначе. Лучшие в Сургуте.",
    rating: 5,
    date: "2024-03-05",
    votesCount: 31,
    isHelpful: true
  },
  {
    id: 4,
    name: "Марина К.",
    profession: "Менеджер",
    text: "Обратилась по вопросу возврата прав после лишения. Всё сделали быстро и профессионально. Через 2 месяца права уже были у меня. Рекомендую!",
    rating: 4,
    date: "2024-02-28",
    votesCount: 15,
    isHelpful: true
  },
  {
    id: 5,
    name: "Дмитрий В.",
    profession: "Инженер",
    text: "Были проблемы со страховой после ДТП. Юристы помогли составить претензию, потом представляли интересы в суде. Выиграли дело полностью.",
    rating: 5,
    date: "2024-02-20",
    votesCount: 22,
    isHelpful: true
  },
  {
    id: 6,
    name: "Ольга Н.",
    profession: "Врач",
    text: "Купила б/у авто с проблемами, которые не были указаны при продаже. Юристы помогли вернуть деньги через суд. Очень благодарна за помощь!",
    rating: 5,
    date: "2024-02-15",
    votesCount: 27,
    isHelpful: true
  },
  {
    id: 7,
    name: "Сергей Т.",
    profession: "Водитель",
    text: "Спор со страховой длился полгода. Сам не мог ничего добиться. Обратился сюда - ребята за 2 месяца решили вопрос в мою пользу. Супер!",
    rating: 4,
    date: "2024-02-08",
    votesCount: 19,
    isHelpful: true
  },
  {
    id: 8,
    name: "Анна Р.",
    profession: "Учитель",
    text: "Помогли оспорить штраф с камеры, который пришел ошибочно. Юрист быстро разобрался в ситуации и подготовил все документы. Спасибо!",
    rating: 5,
    date: "2024-02-01",
    votesCount: 12,
    isHelpful: false
  },
  {
    id: 9,
    name: "Виктор Л.",
    profession: "Предприниматель",
    text: "Обратился по вопросу компенсации после ДТП. Страховая занижала выплату в 3 раза. Сделали экспертизу и через суд добились справедливой суммы.",
    rating: 5,
    date: "2024-01-25",
    votesCount: 35,
    isHelpful: true
  }
];

const colors = [
  "bg-blue-100 text-blue-600", "bg-teal-100 text-teal-600", "bg-orange-100 text-orange-600",
  "bg-pink-100 text-pink-600", "bg-purple-100 text-purple-600", "bg-indigo-100 text-indigo-600",
  "bg-green-100 text-green-600", "bg-yellow-100 text-yellow-600", "bg-red-100 text-red-600"
];

export const reviewsData: Review[] = reviewsRaw.map(review => {
  const initial = review.name.charAt(0).toUpperCase();
  const color = colors[initial.charCodeAt(0) % colors.length];
  return { ...review, avatar: { initial, color } };
});

export const votingSummary = (() => {
  const totalReviews = reviewsData.length;
  const totalVotes = reviewsData.reduce((sum, review) => sum + review.votesCount, 0);
  const totalRating = reviewsData.reduce((sum, review) => sum + review.rating, 0);
  const averageRating = totalReviews > 0 ? parseFloat((totalRating / totalReviews).toFixed(1)) : 0;
  const ratingDistribution = reviewsData.reduce((acc, review) => {
    acc[review.rating] = (acc[review.rating] || 0) + 1;
    return acc;
  }, {} as Record<number, number>);

  return {
    averageRating,
    totalVotes,
    totalReviews,
    ratingDistribution
  };
})();


