<?php

namespace App\Models;

use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\Model;
use \App\Models\traits\SetConnection;

class RelationArticleFacility extends Model
{
    use SetConnection;

    protected $fillable = [
        'article_id', 'facility_id', 'distance', 'time', 'facility_property', 'facility_area', 'facility', 'company_id'
    ];

    const CREATED_AT = null;
    const UPDATED_AT = null;

    //
    public static function getData($id)
    {
        $user = Auth::user();
        $res = RelationArticleFacility::select(['relation_article_facilities.*'])
            ->leftjoin("facilities", "facilities.id", "=", "relation_article_facilities.facility_id")
            ->where('article_id', '=', $id)
            ->where('facilities.company_id', $user->company_id)
            ->orderby('facility_property')
            ->orderby('distance')
            ->get();
        return $res;
    }

    public static function getArticleRelation($article_id, $facility_id) {
        $res = RelationArticleFacility::where('article_id', '=', $article_id)->where('facility_id', '=', $facility_id)->first();
        return $res;
    }

    public static function getFacilityDataByRainsNo($code='')
    {
        $user = Auth::user();
        $res = RelationArticleFacility::select(['relation_article_facilities.*', 'facilities.name', 'facilities.kind', 'facilities.file_path'])
        ->leftjoin("facilities", "facilities.id", "=", "relation_article_facilities.facility_id")
        ->where('relation_article_facilities.article_id', '=', $code)->where('facilities.company_id', $user->company_id);
        return $res->get();
    }
    public static function getFacilityDataByRainsNoSort($code='')
    {
        $user = Auth::user();
        $res = RelationArticleFacility::select(['relation_article_facilities.*', 'facilities.name', 'facilities.kind', 'facilities.file_path'])
        ->leftjoin("facilities", "facilities.id", "=", "relation_article_facilities.facility_id")
            ->where('relation_article_facilities.article_id', '=', $code)->where('facilities.company_id', $user->company_id)
        ->orderBy('id', 'DESC')->get();
        return $res;
    }

    public function parent()
    {
        return $this->belongsTo(Facility::class, "facility_id");
    }

    function facilityRelation() {
        return $this->hasOne(Facility::class, 'id', 'facility_id');
    }
}
