2af36ea272
- Modelos completos: Evaluacion, EvaluacionTipo, Pregunta, PreguntaTipo,
PreguntaOpcion, EvaluacionSubmission, Respuesta (con $table explícito
para nombres en español que Laravel pluraliza incorrectamente)
- Relaciones evaluaciones() añadidas a Plantel y Nivel
- EvaluacionBuilder (Livewire): constructor interactivo con preguntas
de tipo texto libre, opción múltiple, escala 1-5/1-10 y sí/no;
reorden con flechas, vista previa por tipo, selección de planteles
y niveles, configuración de estado, fechas y flag de anónima
- EvaluacionController: CRUD completo + toggleStatus
- Vistas: index, create/edit (con Livewire builder), show con detalle
de preguntas y cambio de estado
- Rutas resource /evaluacion + PATCH /evaluacion/{id}/status
- Migraciones: evaluaciones, preguntas, pregunta_opciones,
evaluacion_submissions, respuestas, evaluacion_plantel, evaluacion_nivel
- Menú: enlace Evaluaciones en panel de Administrador
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
968 B
PHP
22 lines
968 B
PHP
<?php
|
|
use Illuminate\Database\Migrations\Migration;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
return new class extends Migration {
|
|
public function up(): void {
|
|
Schema::create('respuestas', function (Blueprint $table) {
|
|
$table->id();
|
|
$table->unsignedBigInteger('submission_id');
|
|
$table->unsignedBigInteger('pregunta_id');
|
|
$table->text('valor')->nullable();
|
|
$table->unsignedBigInteger('opcion_id')->nullable();
|
|
$table->timestamps();
|
|
$table->foreign('submission_id')->references('id')->on('evaluacion_submissions')->onDelete('cascade');
|
|
$table->foreign('pregunta_id')->references('id')->on('preguntas')->onDelete('cascade');
|
|
$table->foreign('opcion_id')->references('id')->on('pregunta_opciones')->nullOnDelete();
|
|
});
|
|
}
|
|
public function down(): void { Schema::dropIfExists('respuestas'); }
|
|
};
|