dbmsv2/app/Services/Equipment/Server/Service.php
2025-09-22 10:32:24 +09:00

54 lines
2.1 KiB
PHP

<?php
namespace App\Services\Equipment\Server;
use App\Entities\Customer\ServiceEntity;
use App\Entities\Equipment\ServerEntity;
use App\Interfaces\Customer\ServiceInterface;
use App\Services\Equipment\ServerService;
class Service extends ServerService implements ServiceInterface
{
public function __construct()
{
parent::__construct();
}
private function action_process(ServiceEntity $serviceEntity, array $formDatas = []): ServerEntity
{
if (!array_key_exists('status', $formDatas)) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서버상태가 설정되지 않았습니다.");
}
//서버정보 가져오기
$entity = $this->getEntity($serviceEntity->getServerInfoUID());
if (!$entity instanceof ServerEntity) {
throw new \Exception("{$serviceEntity->getServerInfoUID()}에 해당하는 서버정보를 찾을수없습니다.");
}
//서버정보 수정
return $this->modify($entity, $formDatas);
}
public function createService(ServiceEntity $serviceEntity): ServiceEntity
{
$formDatas = [];
$formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID();
$formDatas['serviceinfo_uid'] = $serviceEntity->getPK();
$formDatas['status'] = STATUS['OCCUPIED'];
$entity = $this->action_process($serviceEntity, $formDatas);
//서비스정보 Entity에 서버정보 설정
return $serviceEntity->setServerEntity($entity);
}
public function modifyService(ServiceEntity $serviceEntity): ServiceEntity
{
return $this->createService($serviceEntity);
}
public function deleteService(ServiceEntity $serviceEntity): ServiceEntity
{
$formDatas = [];
$formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null;
$formDatas['status'] = STATUS['AVAILABLE'];
$entity = $this->action_process($serviceEntity, $formDatas);
//서비스정보 Entity에 서버정보 설정
return $serviceEntity->setServerEntity($entity);
}
}