Tarefa de programação de varejo

Como ajudar o vendedor a determinar se existe um produto com as características certas?

Exemplo
Depois de frequentar a loja de sapatos e escolher o modelo que você gosta, esperamos até que os vendedores determinem se existe um tamanho adequado

Dado


Lista de variações . Cada variação, por sua vez, contém uma lista de atributos e seus valores.

exemplo-data.json
[ { "Size": 37, "Color": "Brown", "Lock": "Zipper" }, { "Size": 37, "Color": "Black", "Lock": "Zipper" }, { "Size": 38, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Brown", "Lock": "Zipper" }, { "Size": 39, "Color": "Brown", "Lock": "Laces" }, { "Size": 40, "Color": "Brown", "Lock": "Laces" } ] 


É necessário criar uma interface pela qual o vendedor, após selecionar as propriedades necessárias, possa determinar se as mercadorias estão em estoque ou não.

Termos:


  • Uma variação contém uma lista completa de atributos (não pode haver variação com valores desconhecidos, se o atributo estiver presente em uma variação, estará em todos)
  • O comprimento da lista de opções para valores de atributo varia de atributo para atributo (um atributo pode assumir um de dois valores, o outro de quatro, etc.)
  • Um atributo pode ter apenas um valor.

Funcionalidade:


A interface é uma lista de listas, onde no primeiro nível é o tipo de atributo, no segundo é o seu valor.

Cada elemento pode estar em 3 estados:

  • Disponível para seleção - Branco
  • Ativo - Azul
  • Disponível em outras combinações - Cinza

No início, todos os itens são selecionáveis



Depois de selecionar um dos atributos, todo o restante é revisado.



Escolhemos 37 (poderia começar com marrom, a lógica é a mesma). Todos os outros tamanhos são brancos (porque são por condição). Não há cor azul. Torna-se cinza, o resto é branco. 37 está apenas no Lightning. Então o raio é selecionado automaticamente. E aqui, atenção! 40 não há tamanho de raio, então 40 fica cinza.

Se de repente precisamos de uma cor azul, o tamanho é redefinido (já que 37 não existe azul) e a trava (porque não há 37 raios, se fosse, ele permaneceria selecionado), os cadarços são selecionados automaticamente (porque azul somente com atacadores) e os tamanhos ficam disponíveis 38, 39.



A tarefa é aplicável como:

  • Prática para estudantes de programação
  • Tarefa de teste para a seleção de candidatos
  • Apenas um passatempo interessante para desenvolvedores experientes

Solicitação: não faça o upload da solução para o problema nos comentários.

Source: https://habr.com/ru/post/pt428662/


All Articles