<?php

namespace App\Modules\Company;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Projects extends Model
{
    use SoftDeletes;
	protected $table = 'projects';
    protected $fillable = [
        'company_id',
        'project_manager_id',
        'name',
        'description',
        'additional_info',
        'location',
        'worker_items',
        'clock_in',
        'clock_out',
        'date_start',
        'date_end',
        'created_by',
    ];

    public function project_supervisors()
    {
        return $this->hasMany('App\ProjectSupervisors', 'project_id', 'id')
            ->join('workers', 'workers.id', '=', 'project_supervisors.user_id')
            ->orderBy('date_from', 'asc')
            ->orderBy('date_to', 'asc');
    }

    public function assigned_employees()
    {
        return $this->hasMany('App\AssignedWorkers', 'project_id', 'id')
            ->join('assigned_availability', 'assigned_availability.assigned_worker_id', '=', 'assigned_workers.id')
            ->join('workers as worker', 'worker.id', '=', 'assigned_workers.worker_id')
            ->join('availabilities', 'availabilities.id', '=', 'assigned_availability.availability_id')
            ->join('worker_experiences', 'worker_experiences.worker_id', '=', 'assigned_workers.worker_id')
            ->join('company_experiences', 'company_experiences.id', '=', 'worker_experiences.experience_id')
            ->where('worker_experiences.is_worker', true);
    }
}
