import type { TouristPersona, TouristPersonaType } from './lead';

/**
 * Persona Tanımları - 7 farklı turist profili
 * Her persona için harcama potansiyeli ve önerilen hizmetler tanımlanmıştır
 */
export const TOURIST_PERSONAS: Record<TouristPersonaType, Omit<TouristPersona, 'key_signals'>> = {
  romantic_couple: {
    type: 'romantic_couple',
    label: 'Romantik Çift',
    sales_label: 'Romantic Couple',
    emoji: '💑',
    description: 'Balayı veya romantik kaçamak arayan çiftler',
    spend_potential: 'high',
    recommended_services: [
      'Özel sıcak hava balonu turu',
      'Romantik akşam yemeği',
      'Butik otel konaklama',
      'Çift masajı ve spa',
      'Gün batımı turu',
      'Özel fotoğraf çekimi'
    ]
  },
  budget_backpacker: {
    type: 'budget_backpacker',
    label: 'Bütçe Gezgini',
    sales_label: 'Budget Backpacker',
    emoji: '🎒',
    description: 'Düşük bütçeli, macera arayan gezginler',
    spend_potential: 'low',
    recommended_services: [
      'Grup turları',
      'Hostel konaklama',
      'Yürüyüş turları',
      'Toplu taşıma transferleri',
      'Ücretsiz aktiviteler',
      'Ekonomik restoranlar'
    ]
  },
  luxury_traveler: {
    type: 'luxury_traveler',
    label: 'Lüks Gezgin',
    sales_label: 'Luxury Traveler',
    emoji: '👑',
    description: 'Premium deneyim ve konfor arayan yüksek bütçeli gezginler',
    spend_potential: 'very_high',
    recommended_services: [
      'VIP sıcak hava balonu turu',
      'Özel helikopter turu',
      '5 yıldızlı otel konaklama',
      'Özel şoförlü araç',
      'Michelin yıldızlı restoranlar',
      'Özel rehber hizmeti',
      'Lüks spa ve wellness'
    ]
  },
  content_creator: {
    type: 'content_creator',
    label: 'İçerik Üreticisi',
    sales_label: 'Content Creator',
    emoji: '📸',
    description: 'Sosyal medya ve içerik üretimi odaklı gezginler',
    spend_potential: 'medium',
    recommended_services: [
      'Fotoğraf turları',
      'Drone çekimi',
      'Instagram-worthy lokasyonlar',
      'Gün doğumu/batımı turları',
      'Özel fotoğraf çekimi',
      'Video prodüksiyon desteği'
    ]
  },
  family_explorer: {
    type: 'family_explorer',
    label: 'Aile Gezgini',
    sales_label: 'Family Explorer',
    emoji: '👨‍👩‍👧‍👦',
    description: 'Çocuklu aileler için uygun aktiviteler arayan gezginler',
    spend_potential: 'medium',
    recommended_services: [
      'Aile dostu turlar',
      'Çocuk dostu oteller',
      'Eğitici müze ziyaretleri',
      'Güvenli aktiviteler',
      'Aile restoranları',
      'Çocuk bakım hizmetleri'
    ]
  },
  solo_adventurer: {
    type: 'solo_adventurer',
    label: 'Solo Maceracı',
    sales_label: 'Solo Adventurer',
    emoji: '🧗',
    description: 'Tek başına seyahat eden, macera arayan gezginler',
    spend_potential: 'medium',
    recommended_services: [
      'Grup turları (sosyalleşme)',
      'Macera aktiviteleri',
      'Trekking turları',
      'Yerel deneyimler',
      'Hostel/boutique otel',
      'Solo traveler meetups'
    ]
  },
  group_tour: {
    type: 'group_tour',
    label: 'Grup Turu',
    sales_label: 'Group Tour',
    emoji: '👥',
    description: 'Organize grup turları ve kurumsal geziler',
    spend_potential: 'high',
    recommended_services: [
      'Grup turları',
      'Toplu konaklama',
      'Grup transferleri',
      'Toplu yemek organizasyonu',
      'Rehberli turlar',
      'Kurumsal etkinlikler'
    ]
  }
};

/**
 * Persona tipine göre persona bilgisini döndürür
 */
export function getPersonaByType(type: TouristPersonaType): Omit<TouristPersona, 'key_signals'> {
  return TOURIST_PERSONAS[type];
}

/**
 * Harcama potansiyeline göre renk döndürür
 */
export function getSpendPotentialColor(potential?: string): string {
  switch (potential) {
    case 'very_high': return 'bg-purple-500 text-white';
    case 'high': return 'bg-green-500 text-white';
    case 'medium': return 'bg-yellow-500 text-white';
    case 'low': return 'bg-gray-500 text-white';
    default: return 'bg-gray-400 text-white';
  }
}

/**
 * Harcama potansiyeline göre Türkçe etiket döndürür
 */
export function getSpendPotentialLabel(potential?: string): string {
  switch (potential) {
    case 'very_high': return 'Çok Yüksek';
    case 'high': return 'Yüksek';
    case 'medium': return 'Orta';
    case 'low': return 'Düşük';
    default: return 'Bilinmiyor';
  }
}
