File: /var/www/api_matriculas/app/Models/Profile.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
protected $table = 'profiles';
protected $primaryKey = 'id';
protected $fillable = [
'profile',
'description',
'status',
'user_created',
'created_at',
'user_updated',
'updated_at',
'deleted',
'user_deleted',
'deleted_at'
];
protected $hidden = [
'deleted',
'deleted_at',
'user_deleted'
];
public function scopeActive($query)
{
return $query->where('deleted', false);
}
public function permissions_profile()
{
return $this->hasMany(PermissionProfile::class, 'profile_id', 'id');
}
public function permissions()
{
return $this->belongsToMany(Permission::class, 'permissions_profile', 'profile_id', 'permission_id');
}
public function permissions_users()
{
return $this->belongsToMany(Permission::class, 'permissions_profile', 'profile_id', 'permission_id')
->where('permissions.deleted', false) // Filtrar solo los permisos no eliminados
->wherePivot('deleted', false);
}
// Relaciones con el modelo Users
public function createdBy()
{
return $this->belongsTo(User::class, 'user_created');
}
public function updatedBy()
{
return $this->belongsTo(User::class, 'user_updated');
}
public function deletedBy()
{
return $this->belongsTo(User::class, 'user_deleted');
}
}