Saltar a contenido

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.example en el repo: pedir un .env de 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).