<?php
namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Request;
use Excel;
use DB;

class UserSampleInviteModel extends Model
{
    protected $connection = 'order';
    protected $table      = 'lie_user_sample_invite';
    protected $primaryKey = 'invite_id';
    public $timestamps    = true;
    const CREATED_AT      = 'create_time';
    const UPDATED_AT      = null;

    /** * @param \DateTime|int $value * @return false|int * @author dividez */ 
    public function fromDateTime($value)
    { 
        return strtotime(parent::fromDateTime($value)); 
    }

    // 获取邀约列表
    public function lists($request)
    {
        $user_id = $request->input('user_id');

        $page  = $request->input('page', 1);
        $limit = $request->input('limit', 10);
        $field = ['invite_id', 'user_id', 'account', 'invitee_uid', 'invitee_mobile', 'is_expire', 'type', 'create_time'];

        $list = $this->where('user_id', $user_id)
                ->select($field)
                ->orderBy('create_time', 'desc')
                ->orderBy('invite_id', 'asc')
                ->paginate($limit, ['*'], 'page', $page)->toArray();

        $list['data'] = $this->handleData($list['data']);

        return [0, '获取成功', $list['data'], $list['total']];
    }

    public function handleData($data)
    {
        if (!$data) return false;

        $OrderModel = new OrderModel();

        foreach ($data as &$v) {
            $v['type_val'] = $v['type'] == 1 ? '样片' : '工具尺';
        }

        return $data;
    }

    // 获取指定用户邀约人数
    public function getUserInviteCount($user_id, $type=1)
    {
        $map = [];
        $map['user_id'] = $user_id;
        $map['type']    = $type;

        return $this->where($map)->where('is_expire', 1)->count();
    }

    // 获取用户邀约列表
    public function getUserInviteList($user_id)
    {
        return $this->where('user_id', $user_id)->select('invitee_uid', 'invitee_mobile', 'create_time')->get()->toArray();
    }

}