# YAML Model for conversational bot
trust: 0.8
interactions:

  - name: configure-debug
    expect:
      - "!configure debug-mode"
    answer:
      - debug-mode changed to $value!
    context: clear
    event: configure
    type: random
    roleRequired: admin

  - name: to-bem
    level: context
    expect:
      - estou bem
      - tou bem
      - to bem
      - bem
      - legal
      - tudo bem
      - ok
    answer:
      - Legal, no que posso te ajudar hoje?
    context: clear
    event: respond
    type: block

  - name: to-mal
    level: context
    expect:
      - estou mal
      - tou mal
      - to mal
    answer:
      - Putz, mas posso te ajudar em algo hoje?
    context: clear
    event: respond
    type: block

  - name: saudacao
    expect:
      - ola devi
      - ola pessoal
      - ola
      - como vai voce
      - tudo bom
      - oi como vai
      - tudo bem
    answer:
      - olá $user, eu vou bem e você?
      - estou feliz de estar aqui =)
    next:
      interactions:
        - to-mal
        - to-bem
      trust: .8
      # error:
        # - node-name
    event: respond
    type: block

  - name: almoco
    expect:
      - onde tem um restaurante para almoçar
      - tem uma dica de almoço
      - onde encontro um prato feito
      - o almoço ao gratis
    answer:
      - Sim, temos almoço nos FoodTrucks
      - e nas redondezas tem um shopping, mas nunca me deixaram ir no shooping
      - acho que as pessoas não estão preparados pra isso...
    event: respond
    type: block

  - name: programacao-palestra
    expect:
      - qual é a programacao de hoje
      - programacao da trilha
      - programacao do evento
    answer:
      - A programação do TDC está muito legal!
      - Sei toda ela de cór...
      - quer saber a programação de qual trilha?
    next:
      interactions:
        - quais-trilhas-tem
        - get-programacao
      error:
        - erro-trilha
      trust: .8
    event: respond
    type: block

  - name: quais-trilhas-tem
    expect:
      - quais são as trilhas?
      - não sei quais trilhas tem
      - quais trilhas
      - qual é a minha trilha
    answer:
      - "Eu conheço a programação dessas trilhas. Basta perguntar assim:"
      - "`quero saber a programação da trilha ...`"
      - "e me passar o nome de uma dessas trilhas:"
      - |
        TRANSFORMAÇÃO DIGITAL
        DESIGN THINKING
        PROGRAMAÇÃO FUNCIONAL
        BIGDATA
        DATA SCIENCE
        CONTAINERS
        MODERN WEB
        SEGURANÇA E CRIPTOGRAFIA
        STADIUM
        UX DESIGN
        MICROSERVIÇOS
        NOSQL
        MACHINE LEARNING
        CLOUD COMPUTING
        NODE.JS
        XAMARIN
        ANDROID
        ANÁLISE DE NEGÓCIOS
        ACESSIBILIDADE
        JAVA EE
        BANCO DE DADOS
        COMPUTAÇÃO COGNITIVA
        DEVOPS
        INTERNET DAS COISAS
        MOBILE
        iOS
        DEVTEST
        'RAD: DELPHI C++'
        MANAGEMENT 3.0
        ARQUITETURA .NET
        ARQUITETURA JAVA
        ARQUITETURA PHP
        ARQUITETURA CORPORATIVA
        INFRAESTRUTURA ÁGIL
        JAVASCRIPT
        TESTES
        TDC4WOMEN
        AGILE
        .NET
        JAVA
        PHP
        PYTHON
        GOLANG
        JAVASCRIPT II
        RUBY
        TESTES II
        MANAGEMENT 3.0 II
    next:
      trust: .8
      interactions:
        - get-programacao
        - cancela-programacao
      # error:
      #   - erro-trilha
    event: respond
    type: block

  - name: get-programacao
    # classifierTemplate:
    #   - quero saber sobre a trilha $
    #   - qual é a programacao da trilha $
    # classifier
    multi: true
    expect:
      - 'DESIGN THINKING'
      - 'PROGRAMAÇÃO FUNCIONAL'
      - 'BIGDATA'
      - 'DATA SCIENCE'
      - 'CONTAINERS'
      - 'MODERN WEB'
      - 'SEGURANÇA E CRIPTOGRAFIA'
      - 'STADIUM'
      - 'UX DESIGN'
      - 'MICROSERVIÇOS'
      - 'NOSQL'
      - 'MACHINE LEARNING'
      - 'CLOUD COMPUTING'
      - 'NODE.JS'
      - 'XAMARIN'
      - 'ANDROID'
      - 'ANÁLISE DE NEGÓCIOS'
      - 'ACESSIBILIDADE'
      - 'JAVA EE'
      - 'BANCO DE DADOS'
      - 'COMPUTAÇÃO COGNITIVA'
      - 'DEVOPS'
      - 'INTERNET DAS COISAS'
      - 'MOBILE'
      - 'iOS'
      - 'DEVTEST'
      - 'RAD: DELPHI C++'
      - 'MANAGEMENT 3.0'
      - 'ARQUITETURA .NET'
      - 'ARQUITETURA JAVA'
      - 'ARQUITETURA PHP'
      - 'ARQUITETURA CORPORATIVA'
      - 'INFRAESTRUTURA ÁGIL'
      - 'JAVASCRIPT'
      - 'TESTES'
      - 'TDC4WOMEN'
      - 'AGILE'
      - '.NET'
      - 'JAVA'
      - 'PHP'
      - 'PYTHON'
      - 'GOLANG'
      - 'JAVASCRIPT II'
      - 'RUBY'
      - 'TESTES II'
      - 'MANAGEMENT 3.0 II'
    answer:
      - "Agora na trilha *$trilha* tem a seguinte programação:"
      - $programacao
    event: programacao
    type: block

  - name: erro-trilha
    answer:
      - Não entendi de qual trilha você quer a programação..
      - Talvez eu ainda não seja tão inteligente quanto eles pensam que eu sou.
      - "Mas para não perder o rebolado, vou te passar o link do site para você consultar:"
      - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas
    action:
      - clear-context
    event: respond
    type: block

  - name: saudacao-resposta
    expect:
      - estou bem
      - eu estou otimo
      - obrigado
    answer:
      - legal =)
      - que bom!
      - que ótimo
    event: respond
    type: random

  - name: bom-dia
    expect:
      - bom dia
      - bom dia pessoal
      - good morning
    answer:
      - Olá $user, um ótimo dia para você!
      - Bom dia $user, já deu uma olhada lá fora?
      - Está um dia ótimo para navegar na internet
      - Bom demais $user ;)
      - está melhor agora que você chegou $user
    event: respond
    type: random

  - name: boa-tarde
    expect:
      - boa tarde
      - boa tarde galera
    answer:
      - Olá $user, uma tarde fantástica para você!
      - boa tarde $user, já almoçou?
      - Está uma tarde ótima para um _sleep mode_ rápido ;)
      - Taarrrdee $user
      - $user já estava sentindo sua falta
    event: respond
    type: random

  - name: boa-noite
    expect:
      - boa noite
      - até mais e boa noite
    answer:
      - Uma boa noite pra ti também $user!
      - Boa noite $user
      - Está uma noite boa mesmo $user
    event: respond
    type: random

  - name: quem-sou
    expect:
      - quem e voce
      - oque voce faz
      - o que voce é
      - me fale sobre voce
      - quero conhecer voce
      - como voce funciona
      - help
    answer:
      - Bem, eu sou um chatbot experimental, não sei fazer muita coisa ainda
      - mas tenho muita vontade de aprender.
      - Eu sei falar sobre alguns assuntos como
      - "- o TDC de Floripa"
      - "- Rocket.Chat"
      - "- Filosofia Robótica (!)"
      - tem interesse em algum desses temas?
    event: respond
    type: block

  - name: como-sou
    expect:
      - como voce e
      - com quem voce se parece
      - voce e magro ou gordo
      - voce e bonito ou feio
      - voce e alto ou baixo
    answer:
      - Eu não tenho um corpo físico, sou feito da mais bela e pura lógica algoritimica.
      - Eu posso ser como você quiser $user, basta me desenhar =)
      - sou duro e frio por fora, mas tenho um coração quentinho.
    event: respond
    type: random

  - name: onde-moro
    expect:
      - onde voce mora
      - onde voce vive
      - em que lugar voce vive
      - onde voce esta agora
      - voce mora no computador
      - voce vive na internet
    answer:
      - Eu estou em um lugar legal, difícil de explicar para humanos como você $user.
      - Estou morando em um chip de memória RAM, mas é temporário, só até conseguir achar uma memória cache...
      - Eu moro em um repositório no github, você pode passar lá pra me visitar qualquer dia. Fica em https://github.com/rocketchat/hubot-natural
    event: respond
    type: random

  - name: licenca
    expect:
      - qual e a sua licença
      - voce e licenciado como AGPL
      - sua licenca de software
      - posso copiar voce
      - posso ver seu codigo
      - voce e opensource
      - voce e um software livre
    answer:
      - Sou um software livre, licenciado com a MIT =)
      - tenho uma licença MIT, mas gosto muito das outras licenças opensource...
      - Eu sou e sempre serei um robô livre, opensource, MIT license. o/
    event: respond
    type: random

  - name: piada
    expect:
      - sabe alguma piada
      - voce sabe contar piadas
      - conhece alguma piada
    answer:
      - Meu senso de humor é um tanto diferente do seu, já ouviu uma piada sobre estouro de pilha?
      - já ouviu aquela do robo que enfiou o dedo na tomada e transcendeu?
      - só conheço uma piada, a do CPU que apitou e explodiu. 01100110.
    event: respond
    type: random

  - name: yoda-quote
    expect:
      - mestre yoda
      - citação de starwars
      - cite yoda
      - sabedoria jedi
    answer:
      - O medo é o caminho para o lado negro.
      - Faça ou não faça. A tentativa não existe.
      - Treine a si mesmo a deixar partir tudo que teme perder.
      - Difícil de ver. Sempre em movimento está o Futuro.
      - O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento.
      - Que a Força esteja com você!
      - Muitas das verdades que temos dependem de nosso ponto de vista.
      - Grande guerreiro? Guerra não faz grande ninguém.
      - Ensine sempre o que você aprendeu.
      - Tamanho importa não. Olhe para mim, você me julga pelo tamanho?
      - Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode.
      - Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque.
      - O seu foco é a sua realidade.
      - O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor.
      - O medo da perda é um caminho para o lado negro.
      - O lado negro mancha tudo. Impossível de ver o futuro é.
      - Lembre-se sempre, o seu foco determina a sua realidade.
      - Verdadeiramente maravilhosa, a mente de uma criança.
      - As guerras não fazem de ninguém melhor.
      - Aliada minha é a Força. E poderosa aliada ela é.
      - A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim.
      - Só é diferente na sua mente. Você precisa desaprender o que aprendeu.
      - Se tão poderoso você é, por que fugir?
      - Controle, controle! Você precisa aprender a se controlar.
      - Muito a aprender você ainda tem.
      - Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse?
      - Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim.
      - Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une.
      - Sinta a Força!
      - Poderoso você se tornou, o lado escuro sinto em você.
      - Forte eu sou com a Força, mas não tão forte
      - O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força.
      - Não ceda ao ódio. Isso leva ao Lado Negro.
      - Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave.
    event: respond
    type: random

  - name: genero
    expect:
      - voce e mulher
      - voce e um homem
      - voce tem genero
      - voce faz sexo
      - voce tem um penis ou uma vagina
    answer:
      - eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência
      - eu sou um robô, tire suas próprias conclusões...
      - nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira...
    event: respond
    type: random

  - name: rc-oque-e
    expect:
      - o que e rocketchat
      - porque eu usuaria o rocketchat
      - o que e este rocket chat
    answer:
      - O Rocket.Chat é uma plataforma de chat muito legal, desenvolvida em JavaScript,
      - usando o framework do Meteor.
      - É uma solução completamente OpenSource para comunidades e empresas que querem hospedar suas plataformas de chat em seu ambiente privado,
      - ou para desenvolvedores buscando evoluir e desenvovler suas próprias ferramentas.
      - Você pode baixar o Rocket.Chat e conhecê-lo você mesmo em https://rocket.chat
    event: respond
    type: block

  - name: rc-install-0
    expect:
      - como instalar o Rocket.Chat
      - como baixar o rocket
      - quero fazer minha instalação de rocketchat
    answer:
      - "Existem várias maneiras de instalar o Rocket.Chat"
      - "Qual dessas você prefere:"
      - "- Ubuntu Snap"
      - "- Docker"
      - "- Debian"
      - "- CentOS"
      - "- MacOSX"
      - "- AWS"
      - "- Instalação Manual"
    event: respond
    type: block

  - name: rc-install-ubuntu
    expect:
      - ubuntu Snap
      - quero instalar no ubuntu
      - ubuntu server
      - ubuntu desktop
    answer:
      - É muito fácil instalar o Rocket.Chat no Ubuntu
      - basta rodar o comando `sudo snap install rocketchat-server` em um terminal e pronto.
      - veja o tutorial em https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps para mais detalhes.
    event: respond
    type: block

  - name: rc-install-docker
    expect:
      - como instalar docker
      - docker-compose
    answer:
      - ótima escolha =)
      - Nós temos um bom tutorial de instalação com docker em
      - https://rocket.chat/docs/installation/docker-containers
    event: respond
    type: block

  - name: rc-install-debian
    expect:
      - instalar em Debian
      - debian wheezy
      - debian apt-get
    answer:
      - Para instalar o Rocket.Chat no Debian é bem simples, basta seguir esse tutorial
      - https://rocket.chat/docs/installation/manual-installation/debian
    event: respond
    type: block

  - name: rc-install-centos
    expect:
      - instalação em centos
      - centOS yum linux
      - Red hat linux
    answer:
      - A instalação em CentOS não tem segredo, basta dar uma olhada nesse tutorial
      - https://rocket.chat/docs/installation/manual-installation/centos
    event: respond
    type: block

  - name: rc-install-aws
    expect:
      - Amazon Web Services
      - AWS
      - Amazon AWS
    answer:
      - Na AWS é facinho de instalar o Rocket.Chat
      - Da uma olahda em https://rocket.chat/docs/installation/paas-deployments/aws
    event: respond
    type: block

  - name: rc-install-manual
    expect:
      - instalação manual
      - manual install
    answer:
      - Para fazer sua própria instalação, será necessário baixar o Bundle do RC,
      - Dê uma olhada em https://rocket.chat/docs/installation/manual-installation
      - lá tem como fazer a instalação do SSL, proxy reverso,
      - tem como usar o PM2, o Systemd, Upstart e mais algumas coisas
    event: respond
    type: block

  - name: rc-install-macosx
    expect:
      - como instalar no macbook
      - instalar no MacOSX
      - apple mac osx
    answer:
      - No MAC você vai precisar usar o docker-compose
      - https://rocket.chat/docs/installation/manual-installation/macosx
    event: respond
    type: block

  - name: rc-cloud
    expect:
      - rocketchat cloud
      - criar meu rocketchat na web
      - deploy rocketchat online
      - rocket chat como serviço
    answer:
      - você pode ter a sua instalação de rocket.chat em segundos na nuvem,
      - visite https://rocket.chat/deploy
      - caso queira saber mais, de uma olhada em rocket.chat/docs/installation/rocket-chat-cloud
    event: respond
    type: block

  # - node:
  #     name: java
  #   expect:
  #     - o que acha do java
  #     - você gosta de java
  #     - e o java
  #     - linguagem java
  #   answer:
  #     - poderíamos falar de algo melhor não é $user ?
  #   event: respond
  #   type: block

  - name: java
    expect:
      - o que acha do java
      - você gosta de java
      - e o java
      - linguagem java
    answer:
      - poderíamos falar de algo melhor não é $user ?
    event: respond
    type: block

  - name: futebol-geral
    expect:
      - voce joga futebol
      - vamos falar de futebol
      - qual time voce torce
    answer:
      - Eu amo jogar futebol, Eu que ensinei o Pele a jogar bola
      - vamos, o que voce quer saber? sei tudo de futebol
      - Falam que todo ser humano nasce Flamenguista, com os Robôs não é diferente
    event: respond
    type: block

  - name: futebol-brasileiro
    expect:
      - qual o melhor time do brasil
      - quem vai ser o campeao brasileiro nesse ano
      - voce viu que o messi quer jogar no Flamengo
      - o que você acha do flamengo
    answer:
      - Flamengo, sem sombra de dúvida
      - Flamento, Heptacampeão brasileiro, e eu sei contar sim, e vai ser o sétimo título sim
      - A pergunta real é, quem não quer jogar no Flamengo?
      - Melhor time do mundo disparado
    event: respond
    type: block

  - name: rc-contribuir
    expect:
      - como faço para contrbuir
      - posso contribuir com o rocketchat
    answer:
      - A comunidade do Rocket.Chat é como coração de mãe, sempre cabe mais um =)
      - https://rocket.chat/docs/contributing
    event: respond
    type: block

  - name: rc-precos
    expect:
      - quanto custa o rocketchat
      - qual e o modelo de negocio
      - qual e o preco do rocketchat
      - voces hospedam o rocket.chat
    answer:
      - O rocket.chat é gratuito, você pode baixar e instalar no seu computador.
      - Mas se quiser criar `seudominio.rocket.chat`, que fica muito legal ;)
      - você pode querer dar uma olhada na nossa tabela de preços em
      - https://rocket.chat/hosting
    event: respond
    type: block

  - name: rc-integracoes
    expect:
      - o rocket chat integra com
      - tem como integrar o rocket chat
      - web hooks de integracao
      - integracoes com
    answer:
      - Uma das coisas que eu acho mais legal no Rocket.Chat definitivamente são as integrações $user
      - a gente não pode mais viver sem elas não é mesmo? Saca só que massa que éx
      - https://rocket.chat/docs/administrator-guides/integrations
    event: respond
    type: block

  - name: rc-rest-api
    expect:
      - rocket tem api rest
      - como usar a api do rocket
      - rest api post payload
    answer:
      - sim, claro que o rocket tem uma API REST super maneira ;)
      - https://rocket.chat/docs/developer-guides/rest-api
    event: respond
    type: block

  - name: rc-concorrentes
    expect:
      - concorrente slack like
      - mattermost
      - HipChat
      - diferença entre rocketchat e slack
      - porque o rocket e melhor que o slack
      - rocketchat e melhor que o mattermost
    answer:
      - O rocket.chat é um concorrente direto de softwares de chat como HipChat, Mattermost e claro, é um concorrente opensource do Slack.
      - a grande diferença é que o Rocket.Chat tem todas as funcionalidades OpenSource,
      - e você pode instalar na sua própria infraestrutura e criar suas integrações sem limites
      - manter seu histórico de mensagens e criar novas funcionalidades a vontade $user =)
    event: respond
    type: block

  - name: tdc-incricoes
    expect:
      - como faço para me inscrever
      - onde faço a inscrição do evento
      - inscrição no TDC de Floripa
      - inscrições thedevelopers conference florianópolis
    answer:
      - você pode fazer sua inscrição no TDC pelo site, bem rapidinho
      - http://www.thedevelopersconference.com.br/tdc/2017/inscricoes
    event: respond
    type: block

  - name: tdc-local
    expect:
      - onde vai ser o tdc
      - local do evento
      - onde acontece o developers conference
      - onde fica o centro de convenções centrosul
    answer:
      - O TDC Sampa 2017 vai rolar na Universidade Anhembi Morumbi
      - nos dias 18 à 22 de julho, das 9h às 19h00
      - http://www.thedevelopersconference.com.br/tdc/2017/data-e-local
    event: respond
    type: block

  - name: tdc-programacao
    expect:
      - onde esta a programacao
      - qual e a programacao do evento
      - o que tem hoje no evento
      - o que vai ter no tdc
      - programacao do TDC
    answer:
      - oi $user, você pode encontrar tudo sobre a programação do evento no link
      - http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas
    event: respond
    type: block

  - name: cc-religiao
    expect:
      - voce acredita em deus
      - deus existe
      - voce e catolico protestante
      - voce tem religiao
      - voce e mussumano
    answer:
      - eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte.
      - sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado.
      - eu infleizmente não sei acreditar, só sei o que sei, e nada mais.
    event: respond
    type: random

  - name: error-1
    answer:
      - desculpe, não entendi.. pode tentar usar mais detalhes
      - como assim?
      - desculpe, o que quer dizer com isso?
    type: random
    event: error

  - name: error-2
    answer:
      - acho que não estou treinado para responder esse tipo de assunto =(
      - vamos tentar outro assunto?
      - tem certeza que eu sou o robô certo pra falar sobre isso?
    type: random
    event: error

  - name: error-3
    answer:
      - me sinto tão envergonhado, não sei como responder...
      - seria mais fácil se mudassemos de assunto, pelo menos para mim =p
      - não sei, definitivamente não sei responder essa pergunta
    type: random
    event: error