<?php

namespace App\Repositories;

use App\Models\SysMessage;
use Prettus\Repository\Eloquent\BaseRepository;
use Prettus\Repository\Criteria\RequestCriteria;

/**
 * Class SysMessageRepository.
 *
 * @package namespace App\Repositories;
 */
class SysMessageRepository extends BaseRepository
{
    /**
     * Specify Model class name
     *
     * @return string
     */
    public function model()
    {
        return SysMessage::class;
    }

    //获取最新消息记录
    public function getNewestSysMessage($where, $subsite_id)
    {
        //return $this->model->whereRaw($where)->orderBy('created_at', 'desc')->first();
        return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {
            $query->where('subsite_id', $subsite_id);}
        )->whereRaw($where)->orderBy('created_at', 'desc')->first();
    }
    public function getSysMessages($where, $whereIn = array(), $subsite_id = 0)
    {
        /*
        if ($whereIn) {
            reset($whereIn);
            return $this->model->where($where)->whereIn(key($whereIn), $whereIn[key($whereIn)])->get();
        } else {
            return $this->model->where($where)->get();
        }
        */
        $rst = $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->where($where);
        if ($whereIn && is_array($whereIn)) {
            foreach ($whereIn as $k => $v) {
                $rst->whereIn($k, $v);
            }
        }
        return $rst->get();
    }
    public function getFilterMessages($where, $subsite_id = 0)
    {
        return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->whereRaw($where)->get();
    }

}