Etapa 1 inteira (logica com 100% de cobertura, cena 3D, toque, sons, bancada de desempenho, e2e) e a base da etapa 2 (mapa novo no Tiled, texturas, imagens dos itens, sons conferidos, golpe recortado e medido). Pagina /jogo fora do menu e do sitemap ate a medicao no celular.
193 lines
4.2 KiB
TypeScript
193 lines
4.2 KiB
TypeScript
export type AreaId =
|
|
| "vender"
|
|
| "atender"
|
|
| "operar"
|
|
| "fiscal"
|
|
| "sistemas"
|
|
| "seguranca";
|
|
export type Problema = {
|
|
id: string;
|
|
area: AreaId;
|
|
nome: string;
|
|
solucao: string;
|
|
destino: string;
|
|
};
|
|
|
|
export const AREAS: Record<AreaId, string> = {
|
|
vender: "Vender e ser encontrado",
|
|
atender: "Atender",
|
|
operar: "Operar",
|
|
fiscal: "Fiscal e financeiro",
|
|
sistemas: "Sistemas e integrações",
|
|
seguranca: "Segurança e dados",
|
|
};
|
|
|
|
const DESTINO_DA_AREA: Record<AreaId, string> = {
|
|
vender: "/servicos/criacao-de-sites",
|
|
atender: "/servicos/atendimento-whatsapp-ia",
|
|
operar: "/servicos/engenharia-de-software",
|
|
fiscal: "/servicos/nota-fiscal-reforma-tributaria",
|
|
sistemas: "/servicos/arquitetura-de-software",
|
|
seguranca: "/servicos/arquitetura-de-software",
|
|
};
|
|
|
|
function p(
|
|
area: AreaId,
|
|
id: string,
|
|
nome: string,
|
|
solucao: string,
|
|
destino = DESTINO_DA_AREA[area],
|
|
): Problema {
|
|
return { id, area, nome, solucao, destino };
|
|
}
|
|
|
|
export const PROBLEMAS: readonly Problema[] = [
|
|
p(
|
|
"vender",
|
|
"site-que-ninguem-acha",
|
|
"Site que ninguém acha no Google",
|
|
"Site que aparece no Google",
|
|
),
|
|
p(
|
|
"vender",
|
|
"site-ruim-no-celular",
|
|
"Site que não abre direito no celular",
|
|
"Site que funciona no celular",
|
|
),
|
|
p("vender", "site-lento", "Site lento", "Site rápido"),
|
|
p(
|
|
"vender",
|
|
"catalogo-desatualizado",
|
|
"Catálogo desatualizado",
|
|
"Catálogo em dia",
|
|
),
|
|
p(
|
|
"vender",
|
|
"pedido-perdido-no-whatsapp",
|
|
"Pedido perdido no WhatsApp",
|
|
"Pedido organizado",
|
|
),
|
|
p(
|
|
"vender",
|
|
"pagamento-que-falha",
|
|
"Pagamento que falha",
|
|
"Pagamento funcionando",
|
|
),
|
|
p(
|
|
"atender",
|
|
"atraso-no-atendimento",
|
|
"Atraso no atendimento",
|
|
"Atendimento na hora",
|
|
),
|
|
p(
|
|
"atender",
|
|
"mesma-pergunta-cem-vezes",
|
|
"Mesma pergunta respondida cem vezes",
|
|
"Resposta automática",
|
|
),
|
|
p(
|
|
"atender",
|
|
"agenda-duplicada",
|
|
"Agenda com horário duplicado",
|
|
"Agenda organizada",
|
|
),
|
|
p("atender", "cliente-sem-retorno", "Cliente sem retorno", "Retorno em dia"),
|
|
p(
|
|
"operar",
|
|
"planilha-duplicada",
|
|
"Planilha duplicada",
|
|
"Sistema no lugar da planilha",
|
|
),
|
|
p(
|
|
"operar",
|
|
"digitar-duas-vezes",
|
|
"Digitar a mesma coisa em dois lugares",
|
|
"Cadastro único",
|
|
),
|
|
p("operar", "estoque-furado", "Estoque furado", "Estoque em dia"),
|
|
p(
|
|
"operar",
|
|
"processo-de-uma-pessoa",
|
|
"Processo que só uma pessoa sabe fazer",
|
|
"Processo no sistema",
|
|
),
|
|
p("operar", "controle-no-papel", "Controle no papel", "Controle digital"),
|
|
p(
|
|
"fiscal",
|
|
"nota-fiscal-rejeitada",
|
|
"Nota fiscal rejeitada",
|
|
"Notas fiscais em dia",
|
|
),
|
|
p(
|
|
"fiscal",
|
|
"fechamento-que-nao-bate",
|
|
"Fechamento do mês que não bate",
|
|
"Fechamento conferido",
|
|
),
|
|
p(
|
|
"fiscal",
|
|
"cobranca-esquecida",
|
|
"Cobrança esquecida",
|
|
"Cobrança automática",
|
|
),
|
|
p(
|
|
"fiscal",
|
|
"relatorio-demorado",
|
|
"Relatório que demora dias",
|
|
"Relatório na hora",
|
|
),
|
|
p(
|
|
"sistemas",
|
|
"sistemas-que-nao-conversam",
|
|
"Sistemas que não conversam",
|
|
"Sistemas integrados",
|
|
),
|
|
p(
|
|
"sistemas",
|
|
"maquina-que-nao-conversa",
|
|
"Máquina que não conversa com o sistema",
|
|
"Equipamento integrado",
|
|
"/servicos/integracao-hardware-software-iot",
|
|
),
|
|
p(
|
|
"sistemas",
|
|
"sistema-antigo",
|
|
"Sistema antigo em que ninguém mexe",
|
|
"Sistema atualizado",
|
|
),
|
|
p(
|
|
"sistemas",
|
|
"sistema-que-cai-no-pico",
|
|
"Sistema que cai na hora do pico",
|
|
"Sistema estável",
|
|
),
|
|
p(
|
|
"seguranca",
|
|
"senha-compartilhada",
|
|
"Senha compartilhada",
|
|
"Acesso por pessoa",
|
|
),
|
|
p("seguranca", "dados-sem-backup", "Dados sem backup", "Backup automático"),
|
|
p(
|
|
"seguranca",
|
|
"acesso-de-ex-funcionario",
|
|
"Acesso de ex-funcionário",
|
|
"Acesso revogado",
|
|
),
|
|
p(
|
|
"seguranca",
|
|
"app-de-ia-com-falha",
|
|
"App feito por IA cheio de falha",
|
|
"App revisado",
|
|
"/ia",
|
|
),
|
|
];
|
|
|
|
export function problemaPorId(id: string): Problema | undefined {
|
|
return PROBLEMAS.find((problema) => problema.id === id);
|
|
}
|
|
|
|
export function problemasDaArea(area: AreaId): Problema[] {
|
|
return PROBLEMAS.filter((problema) => problema.area === area);
|
|
}
|