<?php
namespace Module\Vendor\QuickRun\KeyPool;
class ConfigKeyPoolManager extends AbstractKeyPoolManager
{
public function loadItems()
{
return modstart_config('KeyPool_' . $this->key, []);
}
private function saveItems($items)
{
modstart_config()->setArray('KeyPool_' . $this->key, $items);
}
public function saveItemCount($key)
{
$items = $this->loadItems();
if (isset($items[$key])) {
$items[$key]['count'] = $items[$key]['count'] + 1;
$this->saveItems($items);
}
}
public function saveItemLock($key, $available)
{
$items = $this->loadItems();
if (isset($items[$key])) {
$items[$key]['status'] = KeyPoolItemStatus::USING;
$items[$key]['available'] = $available;
$this->saveItems($items);
}
}
public function saveItemBan($key)
{
$items = $this->loadItems();
if (isset($items[$key])) {
$items[$key]['status'] = KeyPoolItemStatus::BAN;
$this->saveItems($items);
}
}
public function saveItemAdd($key, $item)
{
$items = $this->loadItems();
$items[$key] = $item;
$this->saveItems($items);
}
public function saveItemDelete($key)
{
$items = $this->loadItems();
unset($items[$key]);
$this->saveItems($items);
}
}