Files
Sistema-Educativo-Laravel/app/Models/Evaluacion.php
fernando 2af36ea272 feat: módulo de evaluaciones para admin con constructor dinámico
- 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>
2026-04-30 18:09:48 -06:00

46 lines
1.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Evaluacion extends Model
{
protected $table = 'evaluaciones';
protected $guarded = [];
protected $casts = [
'anonima' => 'boolean',
'fecha_inicio' => 'date',
'fecha_fin' => 'date',
];
public function tipo(): BelongsTo
{
return $this->belongsTo(EvaluacionTipo::class, 'evaluacion_tipo_id');
}
public function preguntas(): HasMany
{
return $this->hasMany(Pregunta::class)->orderBy('orden');
}
public function planteles(): BelongsToMany
{
return $this->belongsToMany(Plantel::class, 'evaluacion_plantel');
}
public function niveles(): BelongsToMany
{
return $this->belongsToMany(Nivel::class, 'evaluacion_nivel');
}
public function submissions(): HasMany
{
return $this->hasMany(EvaluacionSubmission::class);
}
}