<?php
namespace App\Models\Api\v1;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\DB;
class RequestAuth extends Base
{
use HasFactory;
public $table = 'os_req_auth';
private static $instance;
private function __clone()
{
}
public static function getInstance()
{
if (!self::$instance instanceof self) {
self::$instance = new static();
}
return self::$instance;
}
public function getOne($where, array $columns = ['*'])
{
return $this->getResult($this->table, $where, $columns);
}
public function updateOne($where, $form)
{
return $this->updateResult($this->table, $where, $form);
}
public function saveOne($form)
{
return $this->saveResult($this->table, $form);
}
public function getLists($user, array $where = [], array $pagination = ['page' => 1, 'limit' => 10], array $order = ['order' => 'id', 'direction' => 'desc'], array $columns = ['*'])
{
if (!empty($user) && !in_array($user->role_id, [1])) {
$where[] = ['user_id', empty($user->oauth_type) ? $user->id : $user->uid];
}
$result['data'] = DB::table($this->table)->limit($pagination['limit'])
->offset($pagination['limit'] * ($pagination['page'] - 1))
->orderBy($order['order'],$order['direction'])
->where($where)
->get($columns);
$result['total'] = DB::table($this->table)->where($where)->count();
return $result;
}
}