<?php
namespace app\model;

class History extends Base
{
    public static function onAfterInsert($item)
    {
        $item->sort  = $item->id;
        $item->save();
    }

    public static function getPaginateList($categoryId, $per = 20,  $isSample = false)
    {
        $paginate = [
            'list_rows' => $per
        ];
        $items = self::where('category_id', $categoryId)->order('sort', 'asc')->paginate($paginate, $isSample);
        if(!$items->isEmpty()) {
            $ids = $items->column('id');
            $infoList = HistoryInfo::getByHistoryIds($ids);
            foreach ($items as $k => $item) {
                $items[$k]['info'] = $infoList[$item['id']] ?? [];
            }
        }
        return $items;
    }

    public static function getByCategoryId($categoryId, $onlyVisible = false)
    {
        $items = self::where('category_id', $categoryId)
            ->when($onlyVisible, function($query){
                $query->where('visible', 1);
            })
            ->order('sort', 'asc')
            ->select();
        if(!$items->isEmpty()) {
            $ids = $items->column('id');
            $infoList = HistoryInfo::getByHistoryIds($ids, $onlyVisible);
            foreach ($items as $k => $item) {
                $items[$k]['info'] = $infoList[$item['id']] ?? [];
            }
        }
        return $items->toArray();
    }
}