Skip to content

feat: [TESIS-156] seed four weeks of demo activity for Norte - #111

Open
LauAubert wants to merge 1 commit into
masterfrom
TESIS-999023-demo-activity-seeds
Open

LauAubert wants to merge 1 commit into
masterfrom
TESIS-999023-demo-activity-seeds

Conversation

@LauAubert

@LauAubert LauAubert commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Ticket de Jira

https://proyectofinalfrlp.atlassian.net/browse/TESIS-156

ID provisorio: se reemplaza por la clave real al cargar la card en Jira. Card: cards/023.md.


Descripción

Los seeds crean todas las órdenes en el momento en que se corren, así que caen todas el mismo día. Para la demo eso deja dos pantallas sin nada que mostrar: la curva de Reportes (proyecto-api#101 / proyecto-web#64) sería un solo punto, sin período anterior contra el cual calcular la tendencia; y la cola de eventos fallidos (proyecto-web#63) estaría vacía, sin forma de mostrar el criterio de aceptación de resiliencia. Este PR agrega cuatro semanas de actividad de Distribuidora Norte.

Decisiones que conviene mirar:

Archivo aparte. db/seeds/demo_activity.rb se carga con una línea al final de seeds.rb. La rama de Shopify (TESIS-138) reescribe buena parte de las plantillas y conexiones de seeds.rb; meter esto ahí habría sido un conflicto seguro.

Qué siembra. 17 ventas manuales repartidas en los últimos 27 días (hora de Argentina, con horarios distintos), sobre el catálogo real de Norte. La mayoría despachadas con Andreani o Correo Argentino con su bitácora completa (ready_to_ship → in_transit → delivered), porque Reportes fecha el despacho por ese evento. Una cancelada y dos pendientes. En la DLQ, un evento agotado que apunta al webhook inválido que ya cargan los seeds —si se lo reintenta desde la pantalla, vuelve a fallar por el mismo motivo, como pasaría de verdad— y uno pendiente con un 503.

Idempotente y relativo. Cada venta se reconoce por el nombre del cliente y cada evento por su error, como el resto de los seeds. Las fechas son relativas al momento en que se corre, para que «últimos 30 días» siempre las vea.

No mueve stock. Son ventas pasadas; el stock de la demo es el que cargan los seeds de arriba.

  • Agrega db/seeds/demo_activity.rb y lo carga desde seeds.rb.
  • Agrega spec/db/demo_activity_seeds_spec.rb: corre los seeds completos (no había spec que los ejecutara) y verifica que las ventas cubren muchos días dentro de los últimos 30, que hay despachos en días distintos, que una segunda corrida no agrega nada, y que la DLQ tiene un evento agotado y uno pendiente.

Evidencia visual

N/A


Cómo probar

  1. bin/rails db:seed sobre una base sembrada → agrega las ventas históricas y los dos eventos; una segunda corrida no agrega nada.
  2. Con proyecto-api#101: GET /api/v1/reports/overview?period=30d como usuario de Norte → la curva tiene ventas en muchos días y dispatched_units es mayor que cero.
  3. Con proyecto-web#63: la pantalla «Eventos fallidos» muestra un evento «Agotado» y uno «Pendiente».

Verificación: bundle exec rspec (1572 ejemplos, 0 fallas), rubocop limpio.


Impacto y consideraciones

¿Introduce breaking changes?
No. Sólo datos de demo; producción no corre seeds.

¿Requiere nuevas variables de entorno?
No

¿Afecta la arquitectura o genera un nuevo patrón?
No. Introduce db/seeds/ para separar datos de demo de la configuración base.

🤖 Generated with Claude Code

The seeds created every order at the moment they ran, so all of them fell on
the same day: the reports curve would draw a single point and the volume per
day said nothing. Nothing reached the dead letter queue either, so the
failed events screen had nothing to show in the demo.

db/seeds/demo_activity.rb adds seventeen manual sales of Distribuidora Norte
spread over the last four weeks in Argentina time, most of them dispatched
with Andreani or Correo Argentino and a full shipment log, one cancelled and
two still pending, plus an exhausted and a pending failed event. It is
idempotent like the rest of the seeds, moves no stock, and lives in its own
file loaded at the end so it does not collide with the template changes in
seeds.rb.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TomasMartin2004

Copy link
Copy Markdown
Contributor

Revisado. No lo mergearía, salvo que entre #101.

Esto no es alcance: es escenografía para la demo. Y como escenografía está bien pensada —hoy los seeds crean todas las órdenes en el mismo instante, así que la curva de reportes es un solo punto y la cola de eventos fallidos está vacía—, pero no arregla nada del sistema.

La condición es simple: si entran #101 y proyecto-web#64 (reportes reales) y proyecto-web#63 (cola de eventos fallidos), esto se vuelve necesario, porque si no esas dos pantallas se defienden vacías y no se puede mostrar la tendencia contra el período anterior ni el criterio de aceptación de resiliencia. Si esos no entran, este tampoco tiene por qué.

Decidilo después de los otros tres, no antes.

@LauAubert LauAubert changed the title feat: [TESIS-999023] seed four weeks of demo activity for Norte feat: [TESIS-156] seed four weeks of demo activity for Norte Oct 3, 2026
@LauAubert LauAubert closed this Oct 3, 2026
@LauAubert
LauAubert deleted the TESIS-999023-demo-activity-seeds branch October 3, 2026 23:19
@LauAubert
LauAubert restored the TESIS-999023-demo-activity-seeds branch October 3, 2026 23:23
@LauAubert LauAubert reopened this Oct 3, 2026
@LauAubert
LauAubert marked this pull request as ready for review October 3, 2026 23:25
@LauAubert
LauAubert requested a review from a team as a code owner October 3, 2026 23:25
@LauAubert
LauAubert requested a review from Sanntinat October 3, 2026 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants