requireAuth(); if ($auth instanceof ResponseInterface) { return $auth; } $builder = $this->getDB()->table('site_info'); $siteInfo = $builder->get()->getRow(); if (!$siteInfo) { // Return default structure if no data return $this->respondSuccess([ 'site_name' => '', 'site_url' => '', 'ceo_name' => '', 'ceo_email' => '', 'phone' => '', 'fax' => '', 'address' => '', 'sms_sender_numbers' => [], 'sms_receiver_number' => '' ]); } // Parse JSON field $siteInfo->sms_sender_numbers = json_decode($siteInfo->sms_sender_numbers ?? '[]'); return $this->respondSuccess($siteInfo); } /** * Update site info */ public function updateSiteInfo() { $auth = $this->requireAuth(); if ($auth instanceof ResponseInterface) { return $auth; } $json = $this->request->getJSON(); $data = [ 'site_name' => $json->site_name ?? '', 'site_url' => $json->site_url ?? '', 'ceo_name' => $json->ceo_name ?? '', 'ceo_email' => $json->ceo_email ?? '', 'phone' => $json->phone ?? '', 'fax' => $json->fax ?? '', 'address' => $json->address ?? '', 'sms_sender_numbers' => json_encode($json->sms_sender_numbers ?? []), 'sms_receiver_number' => $json->sms_receiver_number ?? '', 'updated_at' => date('Y-m-d H:i:s') ]; $builder = $this->getDB()->table('site_info'); $existing = $builder->get()->getRow(); if ($existing) { $builder->where('id', $existing->id)->update($data); $siteInfoId = $existing->id; } else { $data['created_at'] = date('Y-m-d H:i:s'); $builder->insert($data); $siteInfoId = $this->getDB()->insertID(); } // 저장된 데이터 조회하여 반환 $savedData = $builder->where('id', $siteInfoId)->get()->getRow(); $savedData->sms_sender_numbers = json_decode($savedData->sms_sender_numbers ?? '[]'); return $this->respondSuccess($savedData, '사이트 정보가 수정되었습니다.'); } }