sábado, 18 de julio de 2026

Documentación del sistema: narrativa de flujo de negocio y de interacción (parte 6)

Esta es la última publicación de esta serie. La IA ya está generando artefactos de codebase que no me aporta nada publicándolos, siendo que irá todo a parar al codebase de mi proyecto que es el lugar donde debe estar. Ni que hablar que el contenido de la publicación ya ha quedado desfasado con respecto al título de la misma: esto ya no se trata de la narrativa del flujo de negocio ni de la interacción.


 Estoy de acuerdo con el orden que has establecido. Quiero que hagas la migración de prestaciones.


Perfecto. Voy a hacerla siguiendo todas las decisiones que ya tomamos, sin introducir nuevas.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('prestaciones', function (Blueprint $table) {

// Código único e inmutable de la prestación.
$table->string('id')->primary();

// Nombre visible para el usuario.
$table->string('nombre', 60);

// Precio sugerido del catálogo.
$table->decimal('precio_base', 12, 2);

$table->timestamps();
$table->softDeletes();
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('prestaciones');
}
};

Comentarios

Hay dos pequeñas decisiones de implementación que tomé porque son coherentes con todo lo que venimos diseñando:

  • id es string y Primary Key, no increments().

  • No agregué ningún índice adicional, porque una PRIMARY KEY ya crea el índice correspondiente y habíamos acordado no agregar más.

No agregué tampoco:

  • activo

  • categoria

  • descripcion

  • deleted_reason

  • ningún otro campo

porque deliberadamente decidimos mantener el alcance reducido y diseñar únicamente lo que el sistema necesita hoy.

Me parece una muy buena primera migración: es simple, estable y difícilmente necesite cambios en el futuro.

No hay comentarios: