<?php

namespace Yajny\Traits;

trait SelectTranslations{


    public static function colSelect(){

        $lang = app('translator')->getLocale();
        if (empty($lang))
            $lang = config('website.cnf_lang');
        $langs = explode(',', config('website.cnf_langs_live'));
        $className = static::class;
        $obj = new $className;
        // $selectSql  = implode(',',$obj->selColmns);
        $selectSql  = '';
        foreach($obj->selColmns as $col)
        {
            if( in_array($col, $obj->translatable)  ) {
                $selectSql .= ',' . $col . '->>"$.' . $lang . '" as ' . $col . '_lang';
                foreach ($langs as $l) {
                    $selectSql .= ',' . $col . '->>"$.' . $l . '" as ' . $col . '_' . $l;
                }
            }
            else
                $selectSql .= ','.$col;
        }
        return trim($selectSql,',');
    }

    public static function colSelectSearch(){

        $lang = app('translator')->getLocale();
        $className = static::class;
        $obj = new $className;
        // $selectSql  = implode(',',$obj->selColmns);
        $selectSql  = '';
        foreach($obj->selColmns as $col)
        {
            if( in_array($col, $obj->translatable)  )
                $selectSql  .= ','.$col.'->>"$.'.$lang.'" as '.$col;
            else
                $selectSql .= ','.$col;
        }
        return trim($selectSql,',');
    }


    public static function apiColSelect(){

        $lang = app('translator')->getLocale();
        $className = static::class;
        $obj = new $className;

        $selectSql  = '';
        foreach($obj->apiSelColmns as $col)
        {
            if( in_array($col, $obj->translatable)  )
                $selectSql  .= ','.$col.'->>"$.'.$lang.'" as '.$col.'_lang';
            else
                $selectSql .= ','.$col;
        }
        return trim($selectSql,',');
    }

    public function searchSelect(){
        return self::colSelect();
    }

}
