where(self::PK, $uid); return $this->getEntity(); } public function getEntityByID(string $id): null | RecordEntity { $this->where(self::TITLE, $id); return $this->getEntity(); } //create용 public function create(array $formDatas = []): RecordEntity { return $this->create_process(new RecordEntity(), $formDatas); } //modify용 public function modify(RecordEntity $entity, array $formDatas): RecordEntity { return $this->modify_process($entity, $formDatas); } public function getEntitysByParent(ZoneEntity $zone_entity) { $this->where(self::PARENT, $zone_entity->getPK()); return $this->getEntitys(); } //도메인이 이미 존재하는지 체크 public function isUniqueHost($zone_uid, string $host, string $content): bool { $this->where(self::PARENT, $zone_uid); $this->where('host', $host); $this->where('content', $content); return is_null($this->first()) ? true : false; } //CDN값 수정 못하는 고정 Record 처리 public function setFixedCDNRecord(array $hosts) { if (count($hosts)) { $this->whereIn('host', $hosts)->set(['fixed' => 'on'])->update(); log_message("notice", "-----set fixed Records " . implode(",", $hosts) . "처리 완료-----"); } } //Index 검색어용 public function setIndexWordFilter(string $word) { $this->like('host', $word, 'before'); //befor , after , both $this->orWhere('content', $word); } public function setIndexDateFilter($start, $end) { $this->where('created_at >=', $start); $this->where('created_at <=', $end); } public function setIndexOrderBy($field, $order = 'ASC') { $this->orderBy(self::PARENT . " ASC, host ASC, {$field} {$order}"); } }