Flujos críticos

Recorridos de negocio que validan el sistema

El backend se considera correcto cuando estos flujos se pueden ejecutar por API con integridad, trazabilidad y comportamiento idempotente.

Flujo 1: venta completa

  1. Autenticación y selección de contexto.
  2. Apertura de sesión POS.
  3. Creación de orden.
  4. Alta de ítems, modifiers y descuentos.
  5. Envío a producción.
  6. Cobro mediante payment_transactions.
  7. Cierre de ticket.
El ciclo de órdenes también contempla eliminación de renglones, bloqueo, reapertura y cancelación como comandos explícitos del dominio.

Flujo 2: venta con impacto real en inventario

  1. La orden se cobra con éxito.
  2. Se registra el movimiento de pago.
  3. Se generan inventory_movements.
  4. Se generan inventory_consumptions ligados a cada renglón.
  5. Se actualizan snapshots de stock y costo promedio.

Flujo 3: compra completa

  1. Alta de proveedor.
  2. Creación de purchase order.
  3. Creación de receipt.
  4. Posteo de receipt con POST /purchase-receipts/{id}/post.
  5. Entrada a inventario y actualización de costos.
  6. Generación o relación con documento AP.

Flujo 4: cuentas por pagar

  1. Creación de documento AP.
  2. Registro de pago AP.
  3. Aplicación contra documento.
  4. Recalculo de open_amount.

Flujo 5: sincronización operativa

  1. La terminal envía comando con source_device_id, command_type e idempotency_key.
  2. El backend deduplica en processed_commands.
  3. La operación exitosa escribe outbox_events.
  4. La terminal consulta cambios por cursor.

Alcance offline inicial

Endpoints base del núcleo

POST /auth/login
POST /auth/refresh
GET  /me
POST /me/context

POST /pos/sessions/open
POST /pos/sessions/{id}/close
POST /pos/sessions/{id}/reconcile

POST   /orders
POST   /orders/{id}/items
DELETE /orders/{id}/items/{itemId}
POST   /orders/{id}/discounts
POST   /orders/{id}/send-to-production
POST   /orders/{id}/lock
POST   /orders/{id}/reopen
POST   /orders/{id}/cancel
POST   /orders/{id}/payments

POST /payments/{id}/refund
POST /payments/{id}/void

POST /purchase-receipts/{id}/post
POST /ap/payments/{id}/apply
POST /sync/commands