﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SlackAPI.WebSocketMessages;

namespace Slackbot.Kamisama.Bot
{
  public class DeveloperTelegramStickerReaction : MessageReaction
  {
    private static Random random = new CryptoRandom();

    private static List<string> stickerWord = new List<string>()
    {
      "зачекинил", //+
      "чиню", //+
      "чиним", //+
      "это баг", //+
      "скрам", //+
      "стендап", //+
      "митинг", //+
      "на ревью", //+
      "на рецензии", //+
      "на рецензировании", //+
      "у меня все работает", //+
      "все работает", //+
      "не проявляется", //+
      "так и должно быть", //+
      "это платформа", //+
      "платформенная ошибка", //+
      "по-быстрому",
      "побыстрому",
      "чай?",
      "печеньки"
    };

    public override bool CanHandleMessage(BotClient client, NewMessage message)
    {
      return stickerWord.Any(h => message.text.ToLower().Contains(h));
    }

    public override Task SendAnswer(BotClient client, NewMessage message)
    {
      if (!CanHandleMessage(client, message))
        return null;
      var messageText = message.text.ToLower();

      var answerText = string.Empty;
      if (messageText.Contains("у меня все работает") || messageText.Contains("все работает")
          || messageText.Contains("не проявляется") || messageText.Contains("так и должно быть"))
      {
        var number = random.Next(3);
        if (number == 0)
          answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/11.png";
        else if (number == 1)
          answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/12.png";
        else
          answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/13.png";
      }
      else if(messageText.Contains("чай") || messageText.Contains("печеньки"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/18.png";
      }
      else if (messageText.Contains("чиню") || messageText.Contains("чиним"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/6.png";
      }
      else if (messageText.Contains("зачекинил") || messageText.Contains("закоммитил"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/5.png";
      }
      else if (messageText.Contains("это баг"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/7.png";
      }
      else if (messageText.Contains("скрам"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/8.png";
      }
      else if (messageText.Contains("стендап") || messageText.Contains("митинг"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/9.png";
      }
      else if (messageText.Contains("на ревью") || messageText.Contains("на рецензии") ||
        messageText.Contains("на рецензировании"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/192/10.png";
      }
      else if (messageText.Contains("это платформа") || messageText.Contains("платформа") || messageText.Contains("платформенная ошибка"))
      {
        if (random.Next(2) == 0)
          answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/14.png";
        else 
          answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/15.png";
      }
      else if (messageText.Contains("побыстрому") || messageText.Contains("по-быстрому"))
      {
        answerText = "https://s.tcdn.co/67e/60c/67e60c3e-98b9-3cf5-8338-1c71364df6d2/17.png";
      }


      if (string.IsNullOrEmpty(answerText))
        return null;

      return client.PostTextMessageToChannel(answerText, message.channel);
    }
  }
}
