<?php
namespace model\sample;
use model\element;
class modeltext extends \model
{
    public $table = 'sample_model_txt';
    public $key = 'smt_id';
    public $order = 'sm_make,sm_series,sm_model';
    public $findCaches = []; //查询临时缓存
    public $make;

	public function __construct()
    {
		parent::__construct();
        $this->make = new element('m_make');
	}

	function list($key, $where='',$page=0,$pagesize=0,$sidx='',$sord='asc',$orderby=''){
        $fields = '*';
        $where = $this->filter2medoo($where);
		$where = $this->listWhere($where,$page,$pagesize,$sidx,$sord,$orderby);
        $where['smt_s_id'] = $key;
		if($page>0 && $pagesize>0){
			$pages = $this->paging($this->table,$where,$page,$pagesize);
			$where["LIMIT"] = [$pages['limit'],$pagesize];
		}
		$rows = $this->db->select($this->table,$fields,$where);
        //dump($this->db->last(),$rows);
        if(!empty($rows)) foreach($rows as $k=>&$row){
            $row = $this->getRowInfo($row);
        }
		$data = [
			'page'=> $page,
			'total'=> $pages['total'],
			'records' => $pages['records'],
			'rows' => $rows
		];
		return $data;
    }

    /**
     * 得到记录全量信息
     * @param id|row $var id或者行记录
     * @return array
     */
	function getRowInfo($var){
        $row = $var;
		if(!is_array($var)){
            $row = $this->getRowByKey($var);
        }
        //品牌
        if(!empty($row['sm_make'])){
            if(isset($this->findCaches['make'][$row['sm_make']])){
                $tRow = $this->findCaches['make'][$row['sm_make']];
            }else{
                $tRow = $this->make->getRowByKey($row['sm_make']);
                $this->findCaches['make'][$row['sm_make']] = $tRow ;
            }
           $row['captions']['sm_make'] = $tRow['name'];
        }
        return $row;
    }

    public function addRow($key)
    {
        $data = [
            'smt_s_id'=>$key,
            'opuser'=>$this->getOpuser(),
            'create_time'=>$this->getDateTime(),
            'update_time'=>$this->getOpuser(),
        ];
		return $this->db->insert($this->table,$data);
    }

    public function deleteRows($keys)
    {
        if(!is_array($keys)) $keys = explode(',',$keys);
		return $this->db->delete($this->table,[$this->key=>$keys]);
    }
}
