<?php

namespace App\Repositories\ColdStorage;

use App\Models\ColdStorage\ColdStorage;
use Auth;

class ColdStorageRepository
{
    /**
     * @var ColdStorage
     */
    protected $coldStorage;

    /**
     * ColdStorageRepository constructor.
     *
     */
    public function __construct()
    {
        $this->coldStorage = new ColdStorage();
    }

    public function get() {

        $coldStorage = ColdStorage::query();

        $coldStorage->orderBy('id', 'desc');

        $coldStorage->with(['currency', 'network']);

        $coldStorage->has('network');

        $coldStorage->has('currency');

        return $coldStorage->paginate(50)->withQueryString();
    }

    public function all($onlyActive = false) {

        $coldStorage = ColdStorage::query();

        if($onlyActive) {
            $coldStorage->active();
        }

        return $coldStorage->get();

    }

    public function getColdStorageById($id) {
        return ColdStorage::find($id);
    }

    public function store($data) {

        $coldStorage = $this->coldStorage->create($data);

        return $coldStorage->fresh();
    }

    public function update($id, $data) {

        $coldStorage = ColdStorage::find($id);
        $coldStorage->update($data);
        return $coldStorage->fresh();
    }

    public function delete($id) {

        $coldStorage = ColdStorage::find($id);
        $coldStorage->delete();

        return true;
    }
}
