<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Facades\DB;

class Commune extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'department_id', 'pf_name', 'pf_phone', 'pf_email', 'pf_poste'];

    public function spatialisations()
    {
        return $this->hasMany(Spatialisation::class);
    }

    public function participations()
    {
        return $this->hasMany(Participation::class);
    }

    public function department()
    {
        return config('odd.departments')[$this->id];
    }

    public function getConfirmedParticipations()
    {
        return Participation::where([['commune_id', $this->id], ['confirmed', true]])->get();
    }

    public function getPublications()
    {
        //return $this->hasMany(Publication::class);
        return DB::table('publications')
        ->join('participations', 'participations.id', '=', 'publications.participation_id')
        ->where([['participations.commune_id', $this->id], ['confirmed', true]])
        ->get();
    }

    /**
     * The roles that belong to the user.
     */
    public function targets()
    {
        return $this->belongsToMany(Target::class, 'spatialisations');
    }

    public function check_target_exist($id)
    {
        return ($this->targets()->wherePivot('target_id', $id))->count() ? true : false ;
    }
}
