PHPackages                             luinuxscl/ai-posts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. luinuxscl/ai-posts

ActiveLibrary[API Development](/categories/api)

luinuxscl/ai-posts
==================

Laravel package para la creación secuencial de posts para WordPress con estados definidos

05PHP

Since Apr 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/luinuxscl/ai-posts)[ Packagist](https://packagist.org/packages/luinuxscl/ai-posts)[ RSS](/packages/luinuxscl-ai-posts/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

AI Posts
========

[](#ai-posts)

Un package Laravel para la creación secuencial de posts mediante un flujo de trabajo definido por estados. Este package se enfoca en la generación y preparación de posts, dejando la publicación a herramientas externas.

[![Latest Version on Packagist](https://camo.githubusercontent.com/54fee7a0ef9784bdb2865757712d05c264ac699ef876667536441607868aa667/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c75696e757873636c2f61692d706f7374732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/luinuxscl/ai-posts)[![Total Downloads](https://camo.githubusercontent.com/931ef6635fa45d884896c60f6face9250882e591eb632a45a041d6cc5a2f6d92/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c75696e757873636c2f61692d706f7374732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/luinuxscl/ai-posts)[![License](https://camo.githubusercontent.com/90140220eed47797c58f4466929d03f56f801f6f8cdd663b973da48f35a5796e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c75696e757873636c2f61692d706f7374733f7374796c653d666c61742d737175617265)](https://packagist.org/packages/luinuxscl/ai-posts)

Descripción
-----------

[](#descripción)

AI Posts es un package que estructura y facilita el proceso de creación de posts siguiendo un flujo secuencial basado en estados. Gestiona todo el proceso desde la creación del título hasta que el post está listo para publicar, con especial atención a la integración con herramientas de automatización como n8n.

Características
---------------

[](#características)

- **Máquina de estados robusta** para gestionar el ciclo de vida de los posts
- **API RESTful completa** para integración con servicios externos
- **Sistema de eventos** para extender la funcionalidad fácilmente
- **Flujo secuencial**: título → contenido → resumen → prompt para imagen → listo para publicar
- **Exportación flexible** en formato JSON
- **Filtros avanzados** para buscar y gestionar posts

Compatibilidad
--------------

[](#compatibilidad)

Este package es compatible con:

- PHP 8.1 o superior
- Laravel 10.x, 11.x, 12.x

Instalación
-----------

[](#instalación)

Puedes instalar el package vía composer:

```
composer require luinuxscl/ai-posts
```

Después de instalar el package, publica los archivos de configuración y migraciones:

```
php artisan vendor:publish --provider="Luinuxscl\AiPosts\AiPostsServiceProvider"
php artisan migrate
```

### Configuración

[](#configuración)

El package funciona con una configuración por defecto, pero puedes personalizarla editando el archivo `config/ai-posts.php` publicado:

```
// config/ai-posts.php

return [
    // Estados de los posts y sus transiciones
    'states' => [
        'draft' => [/* ... */],
        // Personaliza los estados y sus transiciones
    ],

    // Configuración de la API
    'api' => [/* ... */],

    // Configuración de generación automática
    'auto_generation' => [/* ... */],
];
```

Uso Básico
----------

[](#uso-básico)

### Flujo de trabajo manual

[](#flujo-de-trabajo-manual)

```
// Crear un nuevo post en estado borrador
$post = AiPosts::create(['title' => 'Borrador inicial']);

// Establecer título y avanzar al siguiente estado
$post->setTitle('Título definitivo')->advance();

// Establecer contenido y avanzar
$post->setContent('Contenido del post...')->advance();

// Generar resumen y avanzar
$post->generateSummary()->advance();

// Crear prompt para imagen y avanzar
$post->setImagePrompt('Un prompt descriptivo para IA')->advance();

// En este punto el post estará en estado 'ready_to_publish'
// Ahora podríamos exportarlo:
$jsonData = $post->toJson();

// O marcarlo como exportado
$post->markAsExported();
```

### Usando el servicio de exportación

[](#usando-el-servicio-de-exportación)

```
// Obtener el servicio de exportación
$exportService = app('ai-posts.export');

// Obtener todos los posts listos para exportar
$readyPosts = $exportService->getPostsReadyToExport();

// Exportar todos los posts listos a JSON
$json = $exportService->exportReadyPosts(
    onlyUnexported: true,  // solo los no exportados previamente
    includeMetadata: true,  // incluir metadatos
    prettyPrint: true       // formato JSON legible
);

// Exportar a un archivo
$result = $exportService->exportBatchToFile(
    storage_path('exports/posts-'.date('Y-m-d').'.json')
);
```

### Máquina de estados

[](#máquina-de-estados)

El flujo del post sigue esta secuencia de estados:

1. `draft` - Estado inicial cuando se crea el post
2. `title_created` - Cuando se establece el título
3. `content_created` - Cuando se establece el contenido principal
4. `summary_created` - Cuando se crea el resumen o extracto
5. `image_prompt_created` - Cuando se define el prompt para generar imágenes
6. `ready_to_publish` - Estado final, el post está listo para ser exportado

API REST
--------

[](#api-rest)

El package incluye una API RESTful completa. Los endpoints principales son:

```
# Operaciones CRUD básicas
GET    /api/ai-posts             # Listar posts
POST   /api/ai-posts             # Crear post
GET    /api/ai-posts/{id}        # Obtener post
PUT    /api/ai-posts/{id}        # Actualizar post
DELETE /api/ai-posts/{id}        # Eliminar post

# Transiciones de estado
POST   /api/ai-posts/{id}/advance           # Avanzar al siguiente estado
POST   /api/ai-posts/{id}/set-title         # Establecer título
POST   /api/ai-posts/{id}/set-content       # Establecer contenido
POST   /api/ai-posts/{id}/set-summary       # Establecer resumen
POST   /api/ai-posts/{id}/set-image-prompt  # Establecer prompt para imagen
POST   /api/ai-posts/{id}/mark-as-exported  # Marcar como exportado

# Exportación
GET    /api/ai-posts/export/ready      # Obtener posts listos para exportar
GET    /api/ai-posts/export/json       # Exportar posts como JSON
POST   /api/ai-posts/export/mark-batch # Marcar lote como exportado
GET    /api/ai-posts/filter            # Filtrar posts por criterios

```

Consulta la [documentación de la API](docs/api.md) para más detalles.

Integración con n8n
-------------------

[](#integración-con-n8n)

Este package está especialmente diseñado para integrarse con n8n. Consulta los [ejemplos de integración con n8n](docs/n8n-integration.md) para implementaciones prácticas.

Eventos
-------

[](#eventos)

El package dispara eventos en cada transición de estado, permitiendo extender su funcionalidad:

```
// En EventServiceProvider.php de tu aplicación
protected $listen = [
    // Evento genérico para cualquier cambio de estado
    \Luinuxscl\AiPosts\Events\AiPostStateChanged::class => [
        \App\Listeners\YourCustomListener::class,
    ],
    // Evento cuando un post está listo para publicar
    \Luinuxscl\AiPosts\Events\AiPostReadyToPublish::class => [
        \App\Listeners\NotifyEditor::class,
    ],
];
```

Documentación
-------------

[](#documentación)

Consulta la [documentación completa](docs/README.md) para detalles sobre:

- [Configuración avanzada](docs/configuration.md)
- [API REST](docs/api.md)
- [Integración con n8n](docs/n8n-integration.md)
- [Eventos y extensibilidad](docs/events.md)
- [Exportación](docs/export.md)

Changelog
---------

[](#changelog)

Consulta el [CHANGELOG](CHANGELOG.md) para obtener información sobre las últimas actualizaciones.

Licencia
--------

[](#licencia)

MIT. Consulta el archivo [LICENSE](LICENSE.md) para más información.

Autor
-----

[](#autor)

- [Luis Sepulveda](https://github.com/luinuxscl)

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/dad07c7f091cdc3987b308c455f3f247febb7cf9ba7ab671bceaefd2530b825f?d=identicon)[luinuxscl](/maintainers/luinuxscl)

---

Top Contributors

[![luinuxscl](https://avatars.githubusercontent.com/u/134660453?v=4)](https://github.com/luinuxscl "luinuxscl (3 commits)")

### Embed Badge

![Health badge](/badges/luinuxscl-ai-posts/health.svg)

```
[![Health](https://phpackages.com/badges/luinuxscl-ai-posts/health.svg)](https://phpackages.com/packages/luinuxscl-ai-posts)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M452](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
