Desarrollo local¶
Contenido detallado de setup (desplazado del README para mantenerlo corto).
Requisitos¶
- PHP 8.1+ con extensiones
bz2,mbstring,pdo_mysql,openssl - Composer (última versión)
- MariaDB/MySQL 10+
- Node.js (para Vite)
- Redis (para colas Horizon; opcional si no se procesan jobs en local)
- En Windows: XAMPP (PHP y/o MariaDB) + Composer
Base de datos¶
Crear una base y un usuario con permisos completos (ejemplo local):
DB name: compulandia_integrador
username: compulandia
Configurar las credenciales en .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=compulandia_integrador
DB_USERNAME=compulandia
DB_PASSWORD=********
No hay
.env.exampleen el repo: pedir un.envde referencia al equipo.
Migraciones (subdirectorios numerados)¶
Las migraciones viven en subcarpetas numeradas de database/migrations/
(00, 01, ... — ver ADR-0001).
La carpeta 00 contiene las tablas estándar de Laravel; cada carpeta crea
tablas que necesita la siguiente. php artisan migrate a secas no alcanza.
php artisan migrate:fresh # borra tablas pre-existentes
php artisan migrate # migraciones estándar (raíz)
php artisan migrate --path=database/migrations/00
php artisan migrate --path=database/migrations/01
php artisan migrate --path=database/migrations/02
# ...repetir por cada subcarpeta numerada, en orden, hasta la última
Cargar proveedores iniciales:
php artisan db:seed --class=SupplierSeeder
Ejecutar¶
composer install
php artisan serve # http://localhost:8000
npm install && npm run dev # assets con hot reload
php artisan horizon # workers de cola (requiere Redis)
php artisan schedule:work # scheduler
Conexión a APIs de proveedores¶
Variables en .env (valores en la documentación del equipo en Postman):
COMPULANDIA_API_DEV_URL=
COMPULANDIA_COMPANY_DB=
COMPULANDIA_API_USERNAME=
COMPULANDIA_API_PASSWORD=
FASTRAX_API_USER=
FASTRAX_API_PASSWORD=
FASTRAX_API_PROD_URL=
FASTRAX_API_DEV_URL=
Sincronizar manualmente:
php artisan app:sync-cl-api # Compulandia API
php artisan app:sync-fx-api # Fastrax
Logging¶
Importar Illuminate\Support\Facades\Log y usar los canales por integración
definidos en app/Constants/LogChannels.php. Formato obligatorio para syncs:
[{CANAL}:{product_id}:{sku}] mensaje (ver convenciones en el AGENTS.md
de la raíz del repo).
Los archivos quedan en storage/logs/ (rutas por canal en el
runbook).