UNPKG

@ai-growth/n8n-nodes-wordpress

Version:

n8n node for WordPress integration with AI GROWTH - SEO WP plugin

205 lines (204 loc) 4.34 kB
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; }