<?php

namespace app\common\service;

use app\common\model\GoodClass;
use app\common\util\WhereBuilder;

class GoodClassService extends Service
{
    /**
     * 分页
     *
     * @param array $params
     */
    public function page($params = [])
    {
        $this->autoParams($params);
        $keyword = $this->pg('keyword');

        $where = WhereBuilder::builder()
            ->like('name', $keyword)
            ->build();

        return (new GoodClass)
            ->where($where)
            ->paginate($this->tp6Page());
    }

    public function all()
    {
        return (new GoodClass)->select();
    }

    /**
     * 创建
     *
     * @param array $params
     */
    public function create($params = [])
    {
        $this->autoParams($params);
        $name = $this->pg('name');
        $desc = $this->pg('desc');
        $class = (new GoodClass)->where('name', '=', $name)->find();
        if ($class) {
            throw $this->exception("名称为 $name 的类别已存在,id={$class->id}");
        }
        $classData = [
            'name' => $name,
            'desc' => $desc,
        ];
        $class = GoodClass::create($classData);
        return $class;
    }

    /**
     * 更新
     *
     * @param array $params
     */
    public function update($params = [])
    {
        $params = $this->autoParams($params);
        return (new GoodClass)->allowField(['name', 'desc'])->update($params);
    }

    /**
     * 删除
     *
     * @param array $params
     */
    public function delete($params = [])
    {
        $this->autoParams($params);
        $class = $this->one(GoodClass::class);
        return $class->delete();
    }

}