/**
 * @fileoverview Utility module for tourSteps.js
 * 
 * @module games.semaforo.config.tourSteps
 */

import {
  createWelcomeStep,
  createGameAreaStep,
  createToolboxStep,
  createWorkspaceStep,
  createRunButtonStep,
  createResetInfoStep,
  createPhaseSelectorStep,
  createPhaseInfoStep,
  createHelpButtonStep,
  gameIcons,
  defaultGameTourOptions,
} from "../../../../utils/tourHelpers";

export const semaforoTourSteps = [
  createWelcomeStep({
    gameName: "Jogo do Semáforo",
    description:
      "Aprenda a controlar o trânsito! Programe o semáforo para carros e pedestres funcionarem corretamente.",
    challenge:
      "Use blocos para criar a sequência correta de luzes e garantir a segurança de todos.",
    iconSvg: gameIcons.traffic,
  }),

  createGameAreaStep({
    title: "Sistema de Semáforos",
    description:
      "Aqui você vê o semáforo de carros e o semáforo de pedestres. Controle-os para evitar acidentes.",
  }),

  createToolboxStep({
    description:
      "Use blocos de comandos de semáforo, espera e repetição para criar a lógica de controle do trânsito.",
  }),

  createWorkspaceStep({
    description:
      "Monte a lógica do semáforo: quando os carros param, os pedestres podem andar, e vice-versa.",
  }),

  createRunButtonStep({
    description:
      "Execute sua programação e veja os semáforos funcionarem. Ouça os sons do trânsito.",
  }),

  createResetInfoStep({
    description:
      "Se o semáforo não funcionar corretamente, use o reset para ajustar sua lógica.",
  }),

  createPhaseSelectorStep({
    description:
      "Diferentes fases trazem situações mais complexas: semáforos com tempo, botões de pedestres e muito mais.",
  }),

  createPhaseInfoStep({
    description:
      "Veja qual desafio você está resolvendo e aprenda novos conceitos de programação.",
  }),

  createHelpButtonStep({
    description:
      "Se tiver dúvidas sobre como programar o semáforo, clique aqui para rever as instruções.",
  }),
];

export const semaforoTourOptions = defaultGameTourOptions;

/**
 * Passos do tour guiado para o jogo Semáforo.
 * Estrutura compatível com a API de tours da aplicação.
 * @type {Array<Object>}
 */
export const _semaforoTourStepsDoc = semaforoTourSteps; // helper para documentação estática

/**
 * Opções padrão do tour do semáforo (reexport de defaults).
 * @type {Object}
 */
export const _semaforoTourOptionsDoc = semaforoTourOptions;
