Saltar al contenido
Curso Dashboard con Filament 5: widgets, gráficos y PDF
03/14 Base: proyecto, datos y métricas Datos para el dashboard: modelos, factories y un seeder con 13 meses de pedidos
Tu lectura Quedan 22 min
Lección 3 de 14 · Base: proyecto, datos y métricas

Datos para el dashboard: modelos, factories y un seeder con 13 meses de pedidos

22 min de lectura Laravel 13

Hola, bienvenido. Un dashboard de ventas necesita pedidos, y para que los gráficos tengan forma y la comparación con el periodo anterior dé algo distinto de cero, necesita muchos y repartidos en el tiempo. En esta lección vamos a crear los 3 modelos de la tienda, Customer, Product y Order, con 2 enums para el estado y el canal de venta, sus factories y un seeder que genera 13 meses de pedidos con temporada alta y crecimiento mes a mes. Vamos a ir por faena y nos pararemos solo en lo que necesiten las métricas.

El modelo de datos de la tienda

Partimos de dashboard-pdf tal como lo dejamos en la lección anterior, con Filament instalado y composer qa en verde. Sobre él vamos a crear 3 tablas:

Tabla Columnas Qué usa de ella el dashboard
customers name, email único y created_at Los clientes nuevos de cada periodo
products name y price Los productos más vendidos
orders customer_id, product_id, quantity, status, channel, total y placed_at Ingresos, pedidos, ticket medio y los 3 gráficos

Un pedido lleva un solo producto, a propósito. En una tienda real habría una tabla de líneas de pedido, pero al dashboard no le aporta nada y nos ahorra un modelo, así que con 3 nos basta. Tampoco vamos a crear recursos de Filament para ellos: el dashboard solo lee estos datos.

Fíjate en placed_at. La fecha del pedido es un dato del negocio y va en su propia columna, separada de created_at, que es el momento en que se insertó la fila. El seeder inserta 13 meses de pedidos de una sola vez, así que con created_at todos tendrían la misma fecha, la del momento en que lo lanzas. En customers hacemos lo contrario: la fecha de alta de un cliente es su created_at, y es el seeder el que la fija, día a día, para repartir los clientes nuevos por todo el periodo.

¿Y por qué 13 meses? Porque 13 meses seguidos incluyen siempre un noviembre y un diciembre, que el seeder trata como temporada alta, y porque así cualquier periodo del filtro, también el trimestre, tiene su periodo anterior lleno de pedidos con los que compararse.

Lo que queda de esta lección
  1. 02Clientes
  2. 03Estados y canales: 2 enums
  3. 04Productos
  4. 05Pedidos
  5. 06Un seeder con 13 meses de pedidos
  6. 07Migrar, lanzar el seeder y comprobar
Sigue leyendo con tu suscripción El curso completo, con su proyecto final, el certificado y el foro con los planes trimestral y anual, está incluido en la suscripción. Ver los planes