<?php
/**
 * Created by PhpStorm.
 * User: zilongs
 * Date: 20-10-4
 * Time: 下午8:32
 */

namespace App\Http\Controllers\Api\V1;

use App\Models\Vaccine;

class VaccineController extends AuthController
{
    public function vaccineList()
    {
        $req = request()->post();
        $this->validate(request(), [
            'organization_id' => 'required|integer',
            'name' => 'max:50',
            'type' => 'in:0,1,2',
            'sort_type' => 'in:0,1,2',
        ]);

        $builder = Vaccine::join('organization_vaccines', 'organization_vaccines.vaccine_id', '=', 'vaccines.id')->select(['vaccines.id', 'organization_vaccines.id as organization_vaccine_id', 'organization_vaccines.type', 'organization_vaccines.price', 'vaccines.name', 'organization_vaccines.remark', 'organization_vaccines.supplier', 'organization_vaccines.stock'])->where('organization_vaccines.stock', '>', 0)->where('organization_vaccines.org_id', $req['organization_id']);
        if (!empty($req['type'])) {
            $builder->where('organization_vaccines.type', $req['type']);
        }
        if (!empty($req['name'])) {
            $builder->where('vacciness.name', 'like', '%'.$req['name'].'%');
        }
        if (!empty($req['sort_type'])) {
            if ($req['sort_type'] == 1) {
                $builder->orderBy('organization_vaccines.price', 'asc');
            }
            elseif ($req['sort_type'] == 2) {
                $builder->orderBy('organization_vaccines.price', 'desc');
            }
        }

        $data = $builder->paginate();

        return out($data);
    }
}
