/home/mip/mip/app/Modules/Client/Models/Settings/Roles/Role.php
<?php

namespace QxCMS\Modules\Client\Models\Settings\Roles;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    protected $connection = 'client';
    protected $table = 'roles';
    public $module_id = 2;

    public $developer_id = 1;
    public $administrator_id = 2;
    public $editor_id = 3;
    public $field_officer_id = 4;

    /*
    * The attributes that are mass assignable.
    *
    * @var array
    */
    protected $guarded = [];
    protected $appends = ['hashid'];
   
    /*
    * Model Accessors
    */
    public function getHashidAttribute()
    {
        return hashid($this->id);
    }

    public function permissions()
    {
        return $this->hasMany('QxCMS\Modules\Client\Models\Settings\Roles\Permission');
    }

    public function users()
    {
        return $this->hasMany('QxCMS\Modules\Likod\Models\Clients\User');
    }

    /*
    * Model Custom Functions
    */
    public function role_access($role_id = 1) 
    {
        if ($role_id == 1) {
            return $this->all();
        } else {
            return $this->where('id', '<>', 1)->get();
        }
    }

    public function getDefaultIDs()
    {
        return $defaultIDs = array(
            $this->developer_id,
            $this->administrator_id,
            $this->editor_id,
            $this->field_officer_id
        );
    }

    public function hiddenRoleIds()
    {
        return [
            $this->developer_id
        ];
    }
}