Feat: Заявки на курсы (Course Requests) - базовая структура

 Миграции: course_requests, course_request_items
 Models: CourseRequest, CourseRequestItem
 CourseRequestController (CRUD + approve/reject)
 CourseRequestPolicy
 Маршруты и регистрация Policy
 index.blade.php

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad
2026-04-01 15:48:41 +08:00
co-authored by Qwen-Coder
parent 21a836ef4d
commit 87f20ef702
8 changed files with 523 additions and 5 deletions
+25 -2
View File
@@ -11,12 +11,20 @@ class CourseRequestItem extends Model
use HasFactory;
protected $fillable = [
'request_id',
'course_request_id',
'course_id',
'user_id',
'group_id',
'start_date',
'end_date',
];
public function request(): BelongsTo
protected $casts = [
'start_date' => 'date',
'end_date' => 'date',
];
public function courseRequest(): BelongsTo
{
return $this->belongsTo(CourseRequest::class);
}
@@ -30,4 +38,19 @@ class CourseRequestItem extends Model
{
return $this->belongsTo(User::class);
}
public function group(): BelongsTo
{
return $this->belongsTo(Group::class);
}
public function getTypeAttribute(): string
{
if ($this->user_id) {
return 'individual';
} elseif ($this->group_id) {
return 'group';
}
return 'organization';
}
}