Files
ntspi-app/app/Containers/InstituteStructure/Models/Department.php
T
F4ilji c01016a154 Migrate backend to Porto architecture and fix minor bugs
- Fully transitioned the backend to the Porto architectural pattern
- Improved code organization and maintainability
- Fixed minor bugs and inconsistencies
2025-05-12 08:47:43 +05:00

43 lines
1.2 KiB
PHP

<?php
namespace App\Containers\InstituteStructure\Models;
use App\Containers\Education\Models\EducationalProgram;
use App\Containers\User\Models\User;
use App\Ship\Models\Model;
use App\Ship\Traits\HasSeo;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Department extends Model
{
use HasFactory, HasSeo;
protected $guarded = false;
protected $casts = [
'content' => 'array',
];
public function faculty(): BelongsTo
{
return $this->belongsTo(Faculty::class);
}
public function workers(): BelongsToMany
{
return $this->belongsToMany(User::class, 'workers_departments')->withPivot(['position', 'sort', 'service_email', 'service_phone', 'cabinet']);
}
public function programs(): BelongsToMany
{
return $this->belongsToMany(EducationalProgram::class, 'program_department');
}
public function teachers(): BelongsToMany
{
return $this->belongsToMany(User::class, 'teachers_departments')->withPivot(['teaching_position', 'sort', 'service_email', 'service_phone', 'cabinet']);
}
}