Añadiendo Modelos y Migraciones en devlog-ist/landing
Estamos trabajando en el proyecto devlog-ist/landing, cuyo objetivo es crear una landing page efectiva. En esta ocasión, he estado involucrado en la adición de un nuevo modelo y su migración correspondiente.
El Problema
Necesitábamos una forma de representar y almacenar la información de los candidatos a pipeline. Esto implicaba crear una estructura de datos que pudiera ser persistida en la base de datos y utilizada por la aplicación.
La Solución
La solución fue crear un modelo llamado PipelineCandidate junto con su migración y factory. El modelo representa la estructura de datos, la migración define la estructura de la tabla en la base de datos, y el factory proporciona una forma de generar datos de prueba.
Primero, definimos el modelo PipelineCandidate:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PipelineCandidate extends Model
{
protected $fillable = [
'name',
'email',
'phone',
'resume_url',
];
}
Luego, creamos la migración correspondiente para definir la tabla en la base de datos:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePipelineCandidatesTable extends Migration
{
public function up()
{
Schema::create('pipeline_candidates', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->string('phone')->nullable();
$table->string('resume_url')->nullable();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('pipeline_candidates');
}
}
Finalmente, creamos un factory para generar datos de prueba:
namespace Database\Factories;
use App\Models\PipelineCandidate;
use Illuminate\Database\Eloquent\Factories\Factory;
class PipelineCandidateFactory extends Factory
{
protected $model = PipelineCandidate::class;
public function definition()
{
return [
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'phone' => $this->faker->phoneNumber,
'resume_url' => $this->faker->url,
];
}
}
Lecciones Aprendidas
La creación de modelos, migraciones y factories es un paso fundamental en el desarrollo de aplicaciones web. Permite definir la estructura de datos, persistirla en la base de datos y generar datos de prueba de manera eficiente. Es crucial mantener estos componentes sincronizados y actualizados para asegurar la integridad de la aplicación.