<?php

namespace App\Models\Entities;

use CodeIgniter\Model;

class ResultModel extends Model
{
    protected $table            = 'result';
    protected $primaryKey       = 'rsrv_sq';
    protected $useAutoIncrement = true;
    protected $returnType       = 'array';
    protected $useSoftDeletes   = false; // 스키마에 삭제 플래그가 없으므로 false

    // insert/update 시 허용할 컬럼 목록
    protected $allowedFields = [
        'rcpt_sq', 'use_yn', 'dept_sq', 'usr_sq', 'cust_nm', 
        'cust_zip', 'cust_addr1', 'cust_addr2', 'cust_tel1', 'cust_tel2', 
        'rsrv_date', 'rsrv_tm_ap', 'rsrv_tm_hour', 'rsrv_tm_min', 'remark', 
        'req_rec_yn', 'rec_yn', 'rec_tel', 'rec_nm', 'result_cd1', 
        'result_cd2', 'result_cd3', 'rsrv_save_dt', 'assign_save_dt', 
        'photo_save_dt', 'result_save_dt', 'insert_tm', 'insert_usr', 
        'update_tm', 'update_usr', 'result_msg', 'check_cplt_dt', 
        'check_dt', 'record_cplt_dt', 'request_msg', 'rsrv_cplt_dt', 
        'rsrv_delay_dt', 'cancel_dt', 'check_delay_dt', 'check_fail_dt', 
        'resYn', 'dbUsageAgrYn', 'vr_check_cplt_dt'
    ];

    // 날짜 자동 설정 기능 (선택 사항)
    // 직접 로직에서 date('Y-m-d H:i:s')를 넣으신다면 false로 두셔도 됩니다.
    protected $useTimestamps = false; 

    /**
     * 특정 접수 번호로 결과 정보 조회 (Join 예시)
     */
    public function getResultWithReceipt($rcpt_sq)
    {
        return $this->select('result.*, receipt.rcpt_atclno, receipt.rcpt_product_nm')
                    ->join('receipt', 'receipt.rcpt_sq = result.rcpt_sq')
                    ->where('result.rcpt_sq', $rcpt_sq)
                    ->first();
    }
}