<?php
namespace App\Models;
use CodeIgniter\Model;

class LowonganModel extends Model {
    protected $table = 'lowongan_karir';
    protected $primaryKey = 'id';
    protected $allowedFields = ['title', 'type', 'location', 'deadline', 'short_desc', 'jobdesc', 'kualifikasi', 'is_active', 'image'];
    protected $useTimestamps = true;
    protected $createdField  = 'created_at';
    
    public function saveKarir()
    {
        if (!session()->get('isLoggedIn')) return redirect()->to('/admin');
    
        $lowonganModel = new \App\Models\LowonganModel();
        $id = $this->request->getPost('id');
        
        // Data dasar yang akan disimpan
        $data = [
            'title'       => trim($this->request->getPost('title')),
            'type'        => trim($this->request->getPost('type')),
            'location'    => trim($this->request->getPost('location')),
            'deadline'    => trim($this->request->getPost('deadline')),
            'short_desc'  => trim($this->request->getPost('short_desc')),
            'jobdesc'     => trim($this->request->getPost('jobdesc')),
            'kualifikasi' => trim($this->request->getPost('kualifikasi')),
        ];
    
        $fileImage = $this->request->getFile('image');
        
        if ($fileImage && $fileImage->isValid() && !$fileImage->hasMoved()) {
            $uploadPath = FCPATH . 'uploads/karir/';
            
            if (!is_dir($uploadPath)) {
                mkdir($uploadPath, 0777, true);
            }
    
            if (!empty($id)) {
                $oldData = $lowonganModel->find($id);
                if ($oldData && !empty($oldData['image']) && file_exists($uploadPath . $oldData['image'])) {
                    unlink($uploadPath . $oldData['image']);
                }
            }
    
            $newName = $fileImage->getRandomName();
            $fileImage->move($uploadPath, $newName);
            
            $data['image'] = $newName;
        }
    
        if (empty($id)) {
            $lowonganModel->insert($data);
        } else {
            $lowonganModel->update($id, $data);
        }
    
        session()->setFlashdata('success', 'Data lowongan berhasil disimpan!');
        return redirect()->to('/dashboard-adm/karir');
    }
}