add more controller

This commit is contained in:
root
2026-03-10 00:48:32 -04:00
parent 5eeaec0257
commit 20ee70d153
151 changed files with 9481 additions and 8407 deletions
@@ -0,0 +1,45 @@
<?php
namespace App\Services\Exams;
use App\Models\Configuration;
use Illuminate\Support\Facades\Schema;
class ExamDraftConfigService
{
public const TEACHER_UPLOAD_DIR = 'exams/drafts';
public const FINAL_UPLOAD_DIR = 'exams/finals';
public const MAX_UPLOAD_BYTES = 12 * 1024 * 1024;
public const ALLOWED_EXTENSIONS = ['doc', 'docx'];
public const ADMIN_ALLOWED_EXTENSIONS = ['doc', 'docx', 'pdf'];
public const EXAM_TYPES = [
'Final Exam',
'Midterm Exam',
'Quiz',
'Study Guide',
'Practice Exam',
'Other',
];
public const STATUS_OPTIONS = ['draft', 'submitted', 'reviewed', 'finalized', 'rejected'];
public function context(): array
{
return [
'school_year' => (string) (Configuration::getConfig('school_year') ?? ''),
'semester' => (string) (Configuration::getConfig('semester') ?? ''),
'has_final_pdf' => $this->hasColumn('exam_drafts', 'final_pdf_file'),
'has_legacy' => $this->hasColumn('exam_drafts', 'is_legacy'),
];
}
private function hasColumn(string $table, string $column): bool
{
try {
return Schema::hasColumn($table, $column);
} catch (\Throwable) {
return false;
}
}
}