@ai-growth/n8n-nodes-wordpress
Version:
n8n node for WordPress integration with AI GROWTH - SEO WP plugin
205 lines (204 loc) • 4.34 kB
TypeScript
import { INodeProperties } from 'n8n-workflow';
import { IFaqItem, ICta } from './WordPressInterfaces';
/**
* Recurso que o nó pode manipular
*/
export type WordPressResource = 'post' | 'page';
/**
* Operações disponíveis para recursos
*/
export type WordPressOperation = 'create' | 'get' | 'getAll' | 'update' | 'delete';
/**
* Status possíveis para um post/página
*/
export type WordPressPostStatus = 'publish' | 'draft' | 'pending' | 'private' | 'future';
/**
* Interface para definição de campo no nó
*/
export interface INodeField {
/**
* Propriedades do campo
*/
field: INodeProperties;
/**
* Operações em que o campo deve ser exibido
*/
operations?: WordPressOperation[];
/**
* Recursos em que o campo deve ser exibido
*/
resources?: WordPressResource[];
}
/**
* Interface para parâmetros de criação de post/página
*/
export interface ICreatePostParams {
/**
* Título do post/página
*/
title: string;
/**
* Conteúdo do post/página (HTML)
*/
content: string;
/**
* Status do post/página
*/
status: WordPressPostStatus;
/**
* Trecho/resumo do post/página
*/
excerpt?: string;
/**
* Categorias (nomes ou IDs) (apenas para posts)
*/
categories?: (string | number)[];
/**
* Tags (nomes ou IDs) (apenas para posts)
*/
tags?: (string | number)[];
/**
* URL da imagem destacada
*/
featured_image_url?: string;
/**
* Data de publicação programada (formato ISO)
*/
date?: string;
/**
* Slug personalizado
*/
slug?: string;
/**
* Título meta para SEO
*/
meta_title?: string;
/**
* Descrição meta para SEO
*/
meta_description?: string;
/**
* Palavras-chave meta para SEO
*/
meta_keywords?: string;
/**
* Título Open Graph para social media
*/
og_title?: string;
/**
* Descrição Open Graph para social media
*/
og_description?: string;
/**
* Título Twitter para social media
*/
twitter_title?: string;
/**
* Descrição Twitter para social media
*/
twitter_description?: string;
/**
* FAQs para o post/página
*/
faq?: IFaqItem[];
/**
* CTA para o post/página
*/
cta?: ICta;
/**
* Habilitar atualização de metadados SEO
*/
updateSeoMetadata?: boolean;
/**
* Habilitar atualização de FAQs
*/
updateFaqs?: boolean;
/**
* Habilitar atualização de CTA
*/
updateCta?: boolean;
}
/**
* Interface para parâmetros de atualização de post/página
*/
export interface IUpdatePostParams extends ICreatePostParams {
/**
* ID do post/página a ser atualizado
*/
id: number;
}
/**
* Interface para parâmetros de obtenção de post/página
*/
export interface IGetPostParams {
/**
* ID do post/página a ser obtido
*/
id: number;
/**
* Incluir metadados SEO
*/
includeSeoMetadata?: boolean;
/**
* Incluir FAQs
*/
includeFaqs?: boolean;
/**
* Incluir CTA
*/
includeCta?: boolean;
}
/**
* Interface para parâmetros de obtenção de múltiplos posts/páginas
*/
export interface IGetAllPostsParams {
/**
* Número de itens por página
*/
limit?: number;
/**
* Página a ser recuperada
*/
page?: number;
/**
* Termo de busca
*/
search?: string;
/**
* IDs de categorias para filtrar (apenas para posts)
*/
categories?: number[];
/**
* IDs de tags para filtrar (apenas para posts)
*/
tags?: number[];
/**
* Status dos posts/páginas a serem recuperados
*/
status?: WordPressPostStatus;
/**
* Incluir metadados SEO
*/
includeSeoMetadata?: boolean;
/**
* Incluir FAQs
*/
includeFaqs?: boolean;
/**
* Incluir CTA
*/
includeCta?: boolean;
}
/**
* Interface para parâmetros de exclusão de post/página
*/
export interface IDeletePostParams {
/**
* ID do post/página a ser excluído
*/
id: number;
/**
* Forçar exclusão permanente (true) ou mover para lixeira (false)
*/
force?: boolean;
}