dbms/app/Services/Equipment/Part/IpService.php
2025-06-16 19:36:30 +09:00

67 lines
1.8 KiB
PHP

<?php
namespace App\Services\Equipment\Part;
use App\Entities\Equipment\Part\IpEntity;
use App\Entities\Equipment\Part\LineEntity;
use App\Models\Equipment\Part\IpModel;
use CodeIgniter\HTTP\IncomingRequest;
class IpService extends PartService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Ip');
}
public function getModelClass(): IpModel
{
return new IpModel();
}
public function getEntityClass(): IpEntity
{
return new IpEntity();
}
public function getFormFields(): array
{
return [
"lineinfo_uid",
"ip",
"status",
];
}
public function getFilterFields(): array
{
return ["lineinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['lineinfo_uid', 'ip', 'status'];
}
public function createByLineInfo(LineEntity $entity, string $ip): IpEntity
{
$formDatas = [];
$formDatas['lineinfo_uid'] = $entity->getPK();
$formDatas['ip'] = $ip;
$formDatas['status'] = DEFAULTS['STATUS'];
return $this->create($formDatas, new IpEntity());
}
//상태변경
public function setStatus(int $uid, string $status): IpEntity
{
//code의 경우 사용가능/사용중으로 설정작업
$entity = $this->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 IP정보를 찾을수 없습니다.");
}
return $this->getModel()->modify($entity, ['status' => $status]);
}
}