<?php

namespace App\Models;

use App\Libs\Database\Eloquent\ContentTypeModel;
use App\Models\GenericBackoffice\Traits\LanguageSupportTrait;
use DB;

class Faq extends ContentTypeModel
{
    use LanguageSupportTrait;

    protected $hidden = ['languages', "websites"];
    protected $with = ['languages', "websites"];

    protected $dates = []; // dates
    protected $casts = [];

    public function faqCategory()
    {
        return $this->belongsTo(FaqCategory::class);
    }

    public function scopeSearch($query, $terms)
    {
        $fullTextTerms = fulltext_search_term($terms, false);
        if (!$fullTextTerms) {
            return $query;
        }
        $languageId = getActiveLanguage();
        return $query->join(
            "faqs_lang as faqslang",
            DB::raw("faqslang.faq_id"),
            "=",
            "faqs.id")
            ->where('faqslang.language_id', $languageId)
            ->whereRaw("MATCH(faqslang.title, faqslang.content)
                AGAINST (? IN BOOLEAN MODE)", array($fullTextTerms));
                /*
            ->orderByRaw("MATCH (faqslang.title)
                AGAINST (? IN BOOLEAN MODE) * 2 +
                MATCH (faqslang.content)
                AGAINST (? IN BOOLEAN MODE) desc",
                array($fullTextTerms, $fullTextTerms)
            ); */
    }
}
