
interface TelegramParams {
  name: string
  phone: string
  email?: string | null
  serviceType?: string | null
  message?: string | null
}

export async function sendTelegramNotification(params: TelegramParams) {
  try {
    const botToken = process.env.TELEGRAM_BOT_TOKEN
    const chatId = process.env.TELEGRAM_CHAT_ID

    if (!botToken || !chatId) {
      console.log('Telegram credentials not configured, skipping notification')
      return { success: false, error: 'Telegram not configured' }
    }

    const serviceTypeText = params.serviceType 
      ? getServiceTypeLabel(params.serviceType) 
      : 'Не указан'

    // Формируем текст сообщения
    let text = `🔔 <b>Новая заявка с сайта Global-IT24</b>\n\n`
    text += `👤 <b>Имя:</b> ${escapeHtml(params.name)}\n`
    text += `📱 <b>Телефон:</b> <code>${params.phone}</code>\n`
    
    if (params.email) {
      text += `📧 <b>Email:</b> ${escapeHtml(params.email)}\n`
    }
    
    text += `⚙️ <b>Тип услуги:</b> ${escapeHtml(serviceTypeText)}\n`
    
    if (params.message) {
      text += `\n💬 <b>Сообщение:</b>\n${escapeHtml(params.message)}`
    }

    // Отправляем сообщение через Telegram Bot API
    const response = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        chat_id: chatId,
        text: text,
        parse_mode: 'HTML',
      }),
    })

    const result = await response.json()

    if (result.ok) {
      console.log('Telegram notification sent successfully')
      return { success: true, messageId: result.result.message_id }
    } else {
      console.error('Telegram API error:', result)
      return { success: false, error: result.description || 'Unknown error' }
    }
  } catch (error) {
    console.error('Error sending Telegram notification:', error)
    return { success: false, error: error instanceof Error ? error.message : 'Unknown error' }
  }
}

function getServiceTypeLabel(type: string): string {
  const labels: Record<string, string> = {
    'general': 'Общая консультация',
    'residential': 'Видеонаблюдение для дома',
    'commercial': 'Коммерческие системы',
    'industrial': 'Промышленное видеонаблюдение',
    'maintenance': 'Обслуживание систем',
  }
  return labels[type] || type
}

function escapeHtml(text: string): string {
  return text
    .replace(/&/g, '&amp;')
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
}
