'required|integer', 'bild_nm' => 'string|max_length[60]', 'rm_no' => 'string|max_length[30]', 'floor' => 'integer', 'floor2' => 'integer', 'ugrodFloor' => 'integer', 'address_code' => 'string|max_length[10]', 'address2' => 'string|max_length[300]', 'address2a' => 'string|max_length[300]', 'address2b' => 'string|max_length[300]', 'address3' => 'string|max_length[300]', 'address4' => 'string|max_length[1000]', 'trade_type' => 'string|max_length[2]', 'deal_amt' => 'integer', 'wrrnt_amt' => 'integer', 'lease_amt' => 'integer', 'isale_amt' => 'integer', 'prem_amt' => 'integer', 'sply_spc' => 'numeric', 'excls_spc' => 'numeric', 'tot_spc' => 'numeric', 'grnd_spc' => 'numeric', 'bldg_spc' => 'numeric', 'hscp_no' => 'string|max_length[30]', 'hscp_nm' => 'string|max_length[60]', 'ptp_no' => 'string|max_length[30]', 'ptp_nm' => 'string|max_length[60]', 'modify_yn' => 'in_list[Y,N]', ]; protected $validationMessages = []; protected $skipValidation = false; protected $cleanValidationRules = true; // 콜백 protected $allowCallbacks = true; protected $beforeInsert = []; protected $afterInsert = []; protected $beforeUpdate = []; protected $afterUpdate = []; protected $beforeFind = []; protected $afterFind = []; protected $beforeDelete = []; protected $afterDelete = []; /** * 검증요청순번(vr_sq)으로 수정정보 조회 */ public function getByVrSq(int $vrSq): ?array { return $this->find($vrSq); } /** * 수정정보 저장 (없으면 insert, 있으면 update) * REPLACE INTO 사용으로 효율성 증대 */ public function saveModifyInfo(int $vrSq, array $data): bool { $data['vr_sq'] = $vrSq; return $this->replace($data); } /** * 수정여부가 Y인 데이터 조회 */ public function getModifiedInfo(): array { return $this->where('modify_yn', 'Y')->findAll(); } /** * 특정 검증요청의 수정여부 업데이트 */ public function updateModifyYn(int $vrSq, string $yn = 'Y'): bool { return $this->update($vrSq, ['modify_yn' => $yn]); } }