feat(seeder): add ScheduleMockSeeder with 40 fake records
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use App\Containers\Schedule\Models\EducationalGroup;
|
||||||
|
use App\Containers\Schedule\Models\Schedule;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class ScheduleMockSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
$groups = EducationalGroup::all();
|
||||||
|
|
||||||
|
if ($groups->isEmpty()) {
|
||||||
|
$this->command?->error('Нет учебных групп. Сначала создайте faculties + educational_groups.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$titles = [
|
||||||
|
'Расписание занятий',
|
||||||
|
'Экзаменационная сессия',
|
||||||
|
'Зачётная неделя',
|
||||||
|
'Расписание консультаций',
|
||||||
|
'Курсовое проектирование',
|
||||||
|
'Производственная практика',
|
||||||
|
'Учебная практика',
|
||||||
|
'Расписание лекций',
|
||||||
|
'Расписание семинаров',
|
||||||
|
'Расписание лабораторных',
|
||||||
|
];
|
||||||
|
|
||||||
|
$semesters = ['осень 2025', 'весна 2026', 'осень 2024', 'весна 2025', 'осень 2023'];
|
||||||
|
|
||||||
|
for ($i = 0; $i < 40; $i++) {
|
||||||
|
$group = $groups->random();
|
||||||
|
$title = $titles[array_rand($titles)];
|
||||||
|
$semester = $semesters[array_rand($semesters)];
|
||||||
|
$slug = \Illuminate\Support\Str::slug("{$title}-{$semester}-{$group->id}-{$i}");
|
||||||
|
|
||||||
|
Schedule::create([
|
||||||
|
'educational_group_id' => $group->id,
|
||||||
|
'is_zaoch' => (bool) rand(0, 1),
|
||||||
|
'file' => [
|
||||||
|
[
|
||||||
|
'title' => "{$title} ({$semester})",
|
||||||
|
'path' => "schedules/{$slug}.pdf",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'created_at' => now()->subDays(rand(0, 60)),
|
||||||
|
'updated_at' => now()->subDays(rand(0, 30)),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->command?->info('Создано 40 мок-расписаний.');
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user