first change
This commit is contained in:
29
Modules/CourseFinder/app/Models/Coop.php
Normal file
29
Modules/CourseFinder/app/Models/Coop.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\CourseFinder\Models;
|
||||
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
// use Modules\CourseFinder\Database\Factories\CoopFactory;
|
||||
|
||||
class Coop extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'slug',
|
||||
'description',
|
||||
'link',
|
||||
|
||||
'status',
|
||||
'order',
|
||||
|
||||
'createdby',
|
||||
'updatedby',
|
||||
];
|
||||
}
|
86
Modules/CourseFinder/app/Models/Program.php
Normal file
86
Modules/CourseFinder/app/Models/Program.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\CourseFinder\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Modules\CCMS\Models\Institution;
|
||||
use Modules\CCMS\Models\Test;
|
||||
|
||||
class Program extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'slug',
|
||||
'code',
|
||||
'description',
|
||||
'institution_id',
|
||||
'programlevel_id',
|
||||
'coop_id',
|
||||
'year',
|
||||
'psw',
|
||||
'prospects',
|
||||
'intakes',
|
||||
'required_documents',
|
||||
'application_open',
|
||||
'application_deadline',
|
||||
'fee',
|
||||
'scholarship',
|
||||
'level',
|
||||
'program_url',
|
||||
'status',
|
||||
'remarks',
|
||||
'createdby',
|
||||
'updatedby',
|
||||
];
|
||||
|
||||
|
||||
public const INTAKE = [
|
||||
1 => 'January',
|
||||
2 => 'February',
|
||||
3 => 'March',
|
||||
4 => 'April',
|
||||
5 => 'May',
|
||||
6 => 'June',
|
||||
7 => 'July',
|
||||
8 => 'August',
|
||||
9 => 'September',
|
||||
10 => 'October',
|
||||
11 => 'November',
|
||||
12 => 'December',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'intakes' => 'array',
|
||||
'required_documents' => 'json',
|
||||
'prof_test_accepted' => 'object',
|
||||
'level' => 'object',
|
||||
];
|
||||
|
||||
public function institution()
|
||||
{
|
||||
return $this->belongsTo(Institution::class, 'institution_id');
|
||||
}
|
||||
|
||||
public function programLevel()
|
||||
{
|
||||
return $this->belongsTo(ProgramLevel::class, 'programlevel_id');
|
||||
}
|
||||
|
||||
public function tests(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Test::class, 'programs_tests', 'program_id', 'test_id')->withPivot('id', 'min_score', 'band_score')->withTimestamps();
|
||||
}
|
||||
|
||||
public function requiredDocuments()
|
||||
{
|
||||
return $this->belongsToJson(RequiredDocument::class, 'required_documents');
|
||||
}
|
||||
}
|
29
Modules/CourseFinder/app/Models/ProgramLevel.php
Normal file
29
Modules/CourseFinder/app/Models/ProgramLevel.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\CourseFinder\Models;
|
||||
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
// use Modules\CourseFinder\Database\Factories\ProgramLevelFactory;
|
||||
|
||||
class ProgramLevel extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'slug',
|
||||
'description',
|
||||
'link',
|
||||
|
||||
'status',
|
||||
'order',
|
||||
|
||||
'createdby',
|
||||
'updatedby',
|
||||
];
|
||||
}
|
38
Modules/CourseFinder/app/Models/RequiredDocument.php
Normal file
38
Modules/CourseFinder/app/Models/RequiredDocument.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\CourseFinder\Models;
|
||||
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
// use Modules\CourseFinder\Database\Factories\RequiredDocumentFactory;
|
||||
|
||||
class RequiredDocument extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'slug',
|
||||
'link',
|
||||
'image',
|
||||
|
||||
'status',
|
||||
'order',
|
||||
|
||||
'createdby',
|
||||
'updatedby',
|
||||
];
|
||||
|
||||
protected function image(): Attribute
|
||||
{
|
||||
return Attribute::make(
|
||||
get: fn($value) => asset($value),
|
||||
);
|
||||
}
|
||||
}
|
0
Modules/CourseFinder/app/Models/Scopes/.gitkeep
Normal file
0
Modules/CourseFinder/app/Models/Scopes/.gitkeep
Normal file
Reference in New Issue
Block a user