<?php

namespace App;

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

class Produto extends Model
{
    use SoftDeletes;

    protected $dates = ['deleted_at'];

    protected $primaryKey = 'id';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'imageprod', 'title', 'image', 'description', 'btncta', 'btnlinkcta', 'language_id', 'slug', 'status', 'depoimento_titulo', 'shortname', 'solucao_id',
        'imagecta', 'titulocta_contato', 'btncta_contato', 'linkbtncta_contato', 'imagectafooter', 'tituloctafooter', 'btnctafooter', 'btnlinkctafooter', 'meta_description', 'meta_title', 'image_mobile',
        'video', 'videotitulo', 'videobtncta', 'videolinkcta', 'videoimagecta', 'linkinterno', 'targetctafooter', 'targetcta_contato',
        'targethero', 'bt_colot_cta', 'bt_colot_cta_contato', 'bt_colot_cta_footer', 'bt_colot_video'. 'order'
    ];

    public static function existeProduto($slug, $lang, $id)
    {

        if ($id != 0) {
            $existe = Produto::where('slug', '=', $slug)
                ->where('id', '<>', $id)->get();
        } else {
            $existe = Produto::where('slug', '=', $slug)->get();
        }

        if (count($existe) > 0) {
            $slug = $slug . (count($existe));
        }

        return $slug;
    }


    public function solucao()
    {
        return $this->belongsTo('App\Solucao');
    }

    public function beneficioProduto()
    {
      return $this->hasOne('App\BeneficioProduto');
    }

    public function featureProduto()
    {
      return $this->hasOne('App\FeatureProduto');
    }

   
    public function cases()
    {
        return $this->belongsToMany('App\BlogPost');
    }

    public function noticias()
    {
        return $this->belongsToMany('App\BlogPost');
    }

    
    public function adicionarCase($case)
    {

        if ($this->existeCase($case)) {
            return;
        }
        $case->tipo = 'case';

        return $this->cases()->attach($case); //attach - adiciona um relacionamento

    }

    public function existeCase($case)
    {
        return (bool) $this->cases()->find($case->id);
    }

    public function removeCase($case)
    {
        return $this->cases()->detach($case); //detach - remove um relacionamento
    }

    public function adicionarNoticia($noticia)
    {

        if ($this->existeNoticia($noticia)) {
            return;
        }

        $noticia->tipo = 'blog';

        return $this->noticias()->attach($noticia); //attach - adiciona um relacionamento

    }

    public function existeNoticia($noticia)
    {
        return (bool) $this->noticias()->find($noticia->id);
    }

    public function removeNoticia($noticia)
    {
        return $this->noticias()->detach($noticia); //detach - remove um relacionamento
    }

    public function depoimentos(){
        return $this->belongsToMany('App\Depoimento');
    }
   
}