Pular para o conteúdo principal

Introdução

🎯 O que este módulo faz?

O módulo GeneralTypes permite que você recupere tipos de entidades em todo o sistema - tipos de página, tipos de formulário, tipos de bloco de produto e mais - que definem a estrutura e as categorias do seu conteúdo no OneEntry.

Pense nisso como seu sistema de classificação de conteúdo - O OneEntry usa tipos para organizar diferentes tipos de páginas (página inicial, post de blog, página de produto), formulários (contato, pesquisa), blocos (herói, galeria) e produtos (físicos, digitais), e este módulo permite que você busque todos os tipos disponíveis para construir interfaces dinâmicas.


📖 Explicação Simples

No OneEntry, cada entidade tem um tipo que determina seu propósito e estrutura:

  • Tipos de Página: homepage, blog_post, product_page, landing_page
  • Tipos de Formulário: contact_form, survey, registration, feedback
  • Tipos de Bloco de Produto: hero_section, image_gallery, text_block, video_embed
  • Tipos de Produto: physical_product, digital_product, service, subscription

O módulo GeneralTypes fornece a lista completa de todos os tipos configurados no seu projeto OneEntry, para que você possa:

Construir dropdowns dinâmicos - Permita que os admins escolham o tipo de página ao criar conteúdo
Filtrar conteúdo - Mostre apenas páginas "blog_post" ou formulários "contact_form"
Validar dados - Verifique se um tipo existe antes de criar uma entidade
Criar lógica baseada em tipo - Exiba diferentes interfaces com base no tipo de página

Exemplo do mundo real:

Seu aplicativo de blog busca todos os tipos de página:
- "homepage" → Renderiza o slider de posts em destaque
- "blog_post" → Renderiza o layout do artigo com comentários
- "about_page" → Renderiza cartões de membros da equipe
- "contact_page" → Renderiza o formulário de contato

✨ Conceitos Chave

Hierarquia do Sistema de Tipos

O OneEntry organiza o conteúdo usando um sistema de tipos onde cada entidade pertence a uma categoria:

EntidadeExemplos de TiposPropósito
Páginashomepage, blog_post, product_page, landing_pageDefinir layouts e funcionalidades de página
Formulárioscontact_form, survey, registration, feedbackCategorizar diferentes propósitos de formulário
Blocos de Produtohero_section, gallery, text_block, video_embedBlocos de construção para páginas de produto
Produtosphysical_product, digital_product, service, subscriptionClassificar inventário de produtos

Estrutura da Entidade Tipo

Cada tipo retornado por GeneralTypes.getAllTypes() tem esta estrutura:

interface GeneralTypeEntity {
id: number; // ID numérico único (ex: 1, 2, 3)
type: string; // Nome do tipo (ex: "blog_post", "contact_form")
}

Quando Usar GeneralTypes

Caso de UsoPor que GeneralTypes?
Construindo interface de admin do CMSPreencher dropdowns com tipos disponíveis
Criando filtros de tipoPermitir que os usuários filtrem conteúdo por tipo (posts de blog vs. páginas de destino)
Validando criação de entidadeVerificar se um tipo existe antes de criar uma página/formulário
Roteamento dinâmicoRoteamento de diferentes tipos de página para diferentes componentes
Permissões baseadas em tipoPermitir que diferentes funções acessem diferentes tipos de conteúdo

📋 O que você precisa saber

Tipos são configurados no Painel de Admin do OneEntry

Você não cria tipos via SDK - os tipos são definidos no seu painel de admin do OneEntry quando você configura seu projeto. O módulo GeneralTypes apenas recupera a lista de tipos existentes.

Como os tipos são criados:

Painel de Admin do OneEntry → Configurações → Tipos de Conteúdo → Adicionar Tipo de Página → "blog_post"

Uma vez criados, você pode buscá-los.

Tipos vs. Marcadores vs. IDs

Distinção importante:

IdentificadorO que éExemploMelhor para
TipoCategoria/classificação da entidade"blog_post"Filtragem e agrupamento
MarcadorIdentificador único legível por humanos"my_about_page"Buscando entidades específicas
IDIdentificador numérico do banco de dados42Uso interno do sistema

getAllTypes() retorna TODOS os tipos em todas as entidades

O método retorna uma lista combinada de tipos de:

  • Páginas
  • Formulários
  • Blocos de Produto
  • Produtos
  • Qualquer outra entidade no seu projeto OneEntry

Não há filtragem embutida por categoria de entidade, então você precisará filtrar manualmente:

Tipos são sensíveis a maiúsculas e minúsculas

Sempre use correspondência exata de maiúsculas e minúsculas ao trabalhar com tipos.

Use tipos para renderização de conteúdo dinâmico

Os tipos permitem conteúdo polimórfico - lógica de renderização diferente com base no tipo:


📊 Tabela de Referência Rápida

MétodoDescriçãoCaso de Uso
getAllTypes()Recupera todos os tipos gerais no sistemaPreencher dropdowns, validar tipos

Estrutura de GeneralTypeEntity:

{
id: number; // ID numérico único
type: string; // Nome do tipo (ex: "blog_post")
}

❓ Perguntas Frequentes (FAQ)

Como eu crio novos tipos?

Você não pode criar tipos via SDK. Os tipos são criados no Painel de Admin do OneEntry:

1. Faça login no Painel de Admin do OneEntry
2. Vá para Configurações → Tipos de Conteúdo
3. Clique em "Adicionar Tipo de Página" (ou Tipo de Formulário, Tipo de Produto, etc.)
4. Insira o nome do tipo: "blog_post"
5. Salve

Agora busque via SDK:
const types = await GeneralTypes.getAllTypes();
// Retorna: [{ id: 1, type: "blog_post" }, ...]

Como eu filtro tipos por entidade (páginas, formulários, produtos)?

O método getAllTypes() retorna todos os tipos em todas as entidades. Você precisa filtrar manualmente.


Posso atualizar ou excluir tipos via SDK?

Não. O módulo GeneralTypes é somente leitura. Toda a gestão de tipos acontece no Painel de Admin do OneEntry.


Qual é a diferença entre ID de tipo e nome de tipo?

Quando usar cada um:

CampoUso ParaExemplo
idReferências internas do sistemaRelações de banco de dados
typeSua lógica de código e comparaçõesif (page.type === 'blog_post')

Melhor prática: Sempre use a string type no seu código, não o número id (IDs podem mudar entre ambientes).


Posso armazenar em cache a lista de tipos?

Sim! Os tipos raramente mudam, então o armazenamento em cache é recomendado.


Como eu lido com tipos ausentes de forma elegante?

Sempre valide se um tipo existe antes de usá-lo.


Posso usar tipos para autorização/permissões?

Sim! Você pode implementar controle de acesso baseado em tipo.


💡 Notas Importantes

⚠️ Tipos são Específicos do Projeto

Os tipos são configurados no seu painel de admin do OneEntry e variam entre projetos. Não existem tipos "padrão" universais - sempre busque a lista dinamicamente:

// ❌ Não codifique tipos
const pageTypes = ['homepage', 'blog_post', 'product_page'];

// ✅ Busque tipos dinamicamente
const allTypes = await GeneralTypes.getAllTypes();
const pageTypes = allTypes.filter(t => t.type.endsWith('_page'));

🔒 Módulo Somente Leitura

O módulo GeneralTypes apenas tipos. Toda a criação, modificação e exclusão de tipos acontece no Painel de Admin do OneEntry.


🎓 Melhores Práticas

  • Busque tipos dinamicamente - Não codifique listas de tipos
  • Armazene tipos em cache - Eles raramente mudam, armazene para desempenho
  • Use strings de tipo, não IDs - Nomes de tipos são estáveis entre ambientes
  • Valide a existência de tipos - Verifique se um tipo é válido antes de usar
  • Use convenções de nomenclatura - Nomenclatura consistente facilita a filtragem
  • Implemente renderização de fallback - Lide com tipos desconhecidos de forma elegante
  • Documente seus tipos - Mantenha uma lista de tipos e seus propósitos
  • Use TypeScript para segurança de tipo - Aproveite a interface GeneralTypeEntity

Definição do módulo GeneralTypes

O módulo GeneralTypes na Plataforma OneEntry é projetado para gerenciar e recuperar tipos gerais usados dentro do sistema. Usando a função defineOneEntry, você pode criar um objeto GeneralTypes para interagir com esses tipos. O método principal disponível é getAllTypes, que recupera todos os objetos do tipo GeneralTypeEntity da API. Este método retorna uma Promise que resolve para um array de objetos GeneralTypeEntity, cada um contendo um id e um type. Os tipos cobrem vários propósitos, como layouts de página, formulários, blocos de produto e mais, proporcionando flexibilidade para diferentes necessidades de gerenciamento de conteúdo.


const { GeneralTypes } = defineOneEntry(
"sua-url-do-projeto", {
"token": "seu-token-de-aplicativo"
}
);