Design

Os ingressos de eventos são compatíveis com renderização de modelos. Se nenhum modelo for definido, será usado o padrão.

Modelo

Um modelo de cartão é definido no nível da classe e usado para exibir qualquer objeto associado a ela. O modelo define quais campos serão exibidos em diferentes seções do cartão.

Ele é dividido nas seguintes seções:

Título do cartão

Seções do título do cartão

A seção de título do cartão exibe o logotipo, nome e local do evento. Não é possível alterar as referências de campo usadas para preenchê-los nem a posição deles.

Modelo do cartão

A seção de modelo do cartão é usada para exibir mais linhas no resumo da viagem, na linha superior. Essas linhas podem conter campos de dados estruturados baseados em texto ou campos de módulo de texto.

É possível especificar o número de linhas que definem o número de objetos na lista class.classTemplateInfo.cardTemplateOverride.cardRowTemplateInfos[], que requer pelo menos um elemento e aceita no máximo dois. Cada elemento precisa ser de um dos seguintes tipos:

  • oneItem, que aceita um item:
    • item
  • twoItems, que aceita dois itens:
    • startItem
    • endItem
  • threeItems, que aceita três itens:
    • startItem
    • midItem
    • endItem

Cada item pode ser definido como um seletor de campo único (.firstValue), de dois campos (.firstValue e .secondValue) ou um item predefinido (.predefinedItem). São exibidos os valores do campo selecionado e as respectivas etiquetas. Quando você define dois seletores de campo, os valores dos campos selecionados são exibidos com um separador "/". O mesmo vale para as etiquetas. Os itens predefinidos são usados para especificar uma renderização mais complexa.

Se um item estiver em branco, ele não será exibido. Para mais detalhes, consulte a seção Referências de campo. Se todos os itens em uma linha estiverem em branco, ela não será exibida. Caso alguns itens em uma linha estiverem em branco, mas não todos, aqueles que estiverem preenchidos serão reorganizados e exibidos como uma linha com menos itens.

Se você não modificar o modelo de cartão, o número padrão de linhas e de itens e as referências de campo padrão serão usados. Para mais detalhes, consulte Modelo padrão.

Se uma imagem principal for definida, ela aparecerá após a primeira linha, caso haja várias linhas na lista cardRowTemplateInfos. Se houver apenas uma linha, a imagem principal aparecerá acima da linha.

Código de barras do cartão

Elementos do código de barras do cartão

A seção de código de barras do cartão é usada para exibir mais texto ou imagens acima e abaixo do código de barras. Nenhum dos campos desta seção é obrigatório.

Há três seletores que podem ser usados para definir dois campos lado a lado, um acima e um abaixo do código de barras. Eles são exibidos sem rótulo e podem ser campos de dados estruturados baseados em texto e campos de módulo de texto ou de imagem. Ao usar imagens, siga as Diretrizes da marca.

O código de barras é definido por um tipo e um valor. Para ver uma lista de tipos compatíveis, consulte a seção Referência de campo. Além disso, é possível exibir um texto abaixo do código para facilitar a leitura dele. Esse trecho também pode ser reaproveitado de outras formas.

Se você não modificar a seção do código de barras, serão usados os campos padrão de código de barras. Para mais informações, consulte Modelo padrão.

Modelo de detalhes

Seções do modelo de detalhes

A seção do modelo de detalhes é uma lista de itens class.classTemplateInfo.detailsTemplateOverride.detailsItemInfos[]. que podem conter qualquer tipo de campo de dados estruturados, de mensagem ou de módulos de texto, link ou imagem.

Cada item pode ser definido como um seletor de campo único (.firstValue), de dois campos (.firstValue e .secondValue) ou um item predefinido (.predefinedItem). São exibidos os valores do campo selecionado e as respectivas etiquetas. Quando você define dois seletores de campo, os valores dos campos selecionados são exibidos com um separador "/". O mesmo vale para as etiquetas. Os itens predefinidos são usados para especificar uma renderização mais complexa. Os campos do módulo de imagem são renderizados na largura total sem uma etiqueta.

Se um item estiver em branco, ele não será exibido. Para mais detalhes, consulte a seção Referências de campo.

Se você não modificar o modelo de detalhes, a lista padrão de campos de referência será exibida na ordem padrão. Para mais informações, consulte Modelo padrão.

Modelo de lista

Seções do modelo de lista

A seção do modelo de lista é usada para selecionar o campo a ser exibido na visualização de "Cartões" no app Google Pay. O cartão é representado na lista com o logotipo, cor de fundo e três linhas.

A primeira linha mostra o nome do evento. A segunda e terceira linhas podem ser definidas com um seletor de campo. Os campos são exibidos sem rótulo. Para cartões agrupados, a segunda linha mostra sempre a data de início e a terceira linha, o número de cartões agrupados.

Rótulos

Todos os campos de dados estruturados têm uma etiqueta fornecida pelo Google. O Google é responsável por fornecer uma tradução para cada uma dessas etiquetas em todos os idiomas aceitos.

É possível personalizar algumas usando um dos campos class.custom<name_of_the_field>Label. Ao personalizar um rótulo, você se torna responsável por traduzi-lo para todos os idiomas que quiser usar.

Referências de campo

As referências de campo são usadas em diferentes partes do modelo com o formato class.classTemplateInfo.*.fields[]. Uma referência de campo contém uma lista de caminhos para campos de dados estruturados, campos de módulo de texto, de link ou de imagem ou mensagens.

Nem todos os tipos de caminhos são permitidos em todas as referências de campo. Por exemplo, algumas delas apenas permitem caminhos para campos de dados estruturados baseados em texto ou campos de módulo de texto. Campos estruturados baseados em texto são campos de dados estruturados do tipo string, string localizada, data ou dinheiro.

A lista pode ser usada para implementar uma lógica de fallback. Isso significa que, se o primeiro caminho da lista for um campo vazio, o próximo caminho será avaliado. A lógica de fallback é voltada principalmente para campos de dados estruturados baseados em texto ou campos de módulo de texto. Não misture tipos diferentes de campos na mesma lista. Use a lógica de fallback com cuidado e somente em situações específicas nas quais é esperado um padrão consistente de campos em alguns objetos, mas não em outros. Na maioria das vezes, é mais fácil criar classes separadas para casos de uso separados.

Se todos os caminhos em uma lista de referência de campo tiverem campos vazios, o item que usa a referência não será exibido. Se você quiser que o item que usa a referência esteja sempre presente, certifique-se de que pelo menos um caminho esteja preenchido. Recomendamos que você defina um campo como caractere especial, como "-", para representar um valor nulo, mesmo se alguns campos permitirem strings com apenas um espaço.

Para referenciar um campo contido em uma lista, é preciso usar códigos de referência. Todos os itens de uma lista que podem ser referenciados têm um campo .id. Use o mesmo código como um índice de lista na string de referência do campo, como no exemplo a seguir:

  • object.imageModulesData[0].id = my-id
  • class.detailsTemplateOverride.detailsItemInfos[0].item.firstValue.fields[0].fieldPath = object.imageModulesData[‘my-id’]

Nesse caso, o primeiro item na seção de detalhes do cartão é a primeira imagem declarada no objeto.

Modelo padrão

Seções do modelo padrão

Exibimos apenas um campo do módulo de imagem da classe e um do objeto. Se você precisar de mais de um campo de módulo de imagem em qualquer um dos níveis, modifique o modelo padrão.

Exibimos no máximo 10 campos de módulo de texto da classe e 10 do objeto. Eles são mostrados na mesma ordem em que foram definidos na matriz. Se você precisar de mais de 10 campos de módulo de texto em um dos níveis, modifique o modelo padrão.

Exibimos no máximo 10 mensagens da classe e 10 do objeto. A ordem delas não é garantida. Se você precisar de mais de 10 mensagens em qualquer um dos níveis ou se precisar garantir a ordem delas, modifique o modelo padrão.

É possível definir um número ilimitado de URIs com o campo de módulo de links. Os URIs são exibidos em grupos na seguinte ordem para todos os níveis classe e objeto:

  1. Coordenadas no mapa
  2. Números de telefone
  3. Endereços de e-mail
  4. Páginas da Web
Os URIs são exibidos em cada grupo na mesma ordem em que são definidos na matriz. Se você precisar de uma ordem diferente, modifique o modelo padrão.

Seções do modelo de lista padrão