Worker.php 2.32 KB
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Worker extends Model
{
    use HasFactory;

    protected $table = 'Workers';

    protected $fillable = [
        'user_id',
        'status_work',
        'position_work',
        'telephone',
        'telephone2',
        'persent_anketa',
        'photo',
        'email_data',
        'status_profile',
        'old_year',
        'experience',
        'en_is',
        'education',
        'email',
        'interpassport',
        'mk',
        'vvp',
        'vlm',
        'reka_diplom',
        'more_diplom',
        'mpss',
        'tanker',
        'gmssb',
        'resume',
        'sort',
        'updated_at',
        'text',
        'address',
        'city',
        'coord',
        'file',
        'is_remove',
        'favorite_user',
        'sroch_user'
    ];

    /*
     * Связь таблицы users с таблицей workers
    */
    public function users() {
        return $this->belongsTo(User::class, 'user_id');
    }

    // Связь Работника с сертификами (0-0 - 1)
    public function sertificate() {
        return $this->hasMany(sertification::class);
    }

    // Связь Работника с должностями (0-0 - 1)
    public function job_titles() {
        return $this->belongsToMany(Job_title::class, 'title_workers');
    }

    //Связь Работника с опытом работы (1 - 0-0)
    public function place_worker() {
        return $this->hasMany(place_works::class);
    }

    public function scopeActive($query) {
        return $query->where('is_remove', '=', '0');
    }

    //Связь Работника с предыдущими компаниями
    public function prev_company() {
        return $this->hasMany(PrevCompany::class);
    }

    //Связь Работника с инфоблоками (0-0 - 0-0)
    public function infobloks() {
        return $this->belongsToMany(infobloks::class,'dop_info',  'worker_id', 'infoblok_id');
    }

    //Связи Работника с дополнительными
    public function dop_info() {
        return $this->hasMany(Dop_info::class, 'worker_id');
    }

    public function response() {
        return $this->hasMany(ResponseWork::class);
    }

}