dbmsv2/app/Services/Payment/Service.php
2025-09-20 15:33:47 +09:00

50 lines
2.0 KiB
PHP

<?php
namespace App\Services\Payment;
use App\Services\Customer\ServiceService;
use App\Interfaces\Customer\ServiceInterface;
use App\Entities\PaymentEntity;
use App\Entities\Customer\ServiceEntity;
class Service extends ServiceService implements ServiceInterface
{
public function __construct()
{
parent::__construct();
}
private function action_process(ServiceEntity $serviceEntity, array $formDatas = []): array
{
$formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID();
$formDatas['serviceinfo_uid'] = $serviceEntity->getPK();
$formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID();
$formDatas['title'] = $serviceEntity->getServerEntity()->getTitle();
$formDatas['amount'] = $serviceEntity->getAmount();
$formDatas['billing'] = PAYMENT['BILLING']['MONTH'];
$formDatas['billing_at'] = $serviceEntity->getBillingAt();
return $formDatas;
}
public function createService(ServiceEntity $serviceEntity): ServiceEntity
{
//필수정보처리 후 결제정보등록
$this->create($this->action_process($serviceEntity));
return $serviceEntity;
}
public function modifyService(ServiceEntity $serviceEntity): ServiceEntity
{
//미납상태의 결제정보 가져오기
$entity = $this->getEntity(['serviceinfo_uid' => $serviceEntity->getPK(), 'status' => STATUS['UNPAID']]);
if (!$entity instanceof PaymentEntity) {
throw new \Exception(__METHOD__ . "에서 오류발생: {$serviceEntity->getPK()}에 해당하는 결제정보를 찾을수 없습니다.");
}
//필수정보처리 후 결제정보수정
$this->modify($entity, $this->action_process($serviceEntity));
return $serviceEntity;
}
public function deleteService(ServiceEntity $serviceEntity): ServiceEntity
{
//삭제시에는 아무것도 하지 않는다.
return $serviceEntity;
}
}