-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Sep 08, 2025 at 02:11 AM
-- Server version: 10.4.32-MariaDB
-- PHP Version: 8.0.30

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `djarazo_recruitment_system`
--

-- --------------------------------------------------------

--
-- Table structure for table `admins`
--

CREATE TABLE `admins` (
  `id` int(11) NOT NULL,
  `username` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `admins`
--

INSERT INTO `admins` (`id`, `username`, `email`, `password`, `created_at`) VALUES
(1, 'admin', 'admin@recruitment.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '2025-08-03 13:06:53');

-- --------------------------------------------------------

--
-- Table structure for table `audit_trail`
--

CREATE TABLE `audit_trail` (
  `id` int(11) NOT NULL,
  `user_id` int(11) DEFAULT NULL,
  `user_type` enum('admin','company','candidate') NOT NULL,
  `email` varchar(100) NOT NULL,
  `action` varchar(50) NOT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `status` enum('success','failed','blocked') NOT NULL,
  `failure_reason` varchar(255) DEFAULT NULL,
  `session_id` varchar(128) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `audit_trail`
--

INSERT INTO `audit_trail` (`id`, `user_id`, `user_type`, `email`, `action`, `ip_address`, `user_agent`, `status`, `failure_reason`, `session_id`, `created_at`) VALUES
(474, 5, 'candidate', 'michael.brown@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-09 10:57:41'),
(475, 11, 'candidate', 'odwa@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-10 14:38:10'),
(476, 11, 'candidate', 'odwa@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-10 17:27:44'),
(477, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-10 15:23:25'),
(478, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-10 16:16:55'),
(479, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-10 09:48:28'),
(480, 6, 'candidate', 'emma.davis@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-10 07:56:48'),
(481, 6, 'candidate', 'emma.davis@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-10 10:33:17'),
(482, 7, 'candidate', 'david.wilson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 08:04:26'),
(483, 7, 'candidate', 'david.wilson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 09:55:05'),
(484, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 15:37:57'),
(485, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-11 13:41:22'),
(486, 1, 'admin', 'admin@recruitment.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-11 09:32:49'),
(487, 1, 'admin', 'admin@recruitment.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 07:13:22'),
(488, 1, 'admin', 'admin@recruitment.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 08:46:36'),
(489, 8, 'candidate', 'lisa.anderson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-11 07:19:28'),
(490, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-11 08:08:03'),
(491, 3, 'candidate', 'john.smith@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 09:06:17'),
(492, 3, 'candidate', 'john.smith@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 09:56:38'),
(493, 5, 'candidate', 'michael.brown@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-11 14:34:50'),
(494, 9, 'candidate', 'robert.taylor@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-11 13:12:29'),
(495, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 08:17:17'),
(496, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 11:33:41'),
(497, NULL, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'blocked', 'Rate limit exceeded', NULL, '2025-08-12 08:52:04'),
(498, 11, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 11:32:00'),
(499, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 07:50:46'),
(500, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 10:40:11'),
(501, 8, 'candidate', 'lisa.anderson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 09:54:06'),
(502, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-12 07:47:55'),
(503, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 11:46:23'),
(504, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-12 13:48:54'),
(505, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 15:35:21'),
(506, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 17:13:53'),
(507, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-13 08:42:04'),
(508, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 07:38:45'),
(509, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 08:20:49'),
(510, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 16:00:39'),
(511, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 19:02:27'),
(512, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-13 16:12:15'),
(513, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-13 16:53:13'),
(514, 6, 'candidate', 'emma.davis@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 07:53:12'),
(515, 6, 'candidate', 'emma.davis@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-13 11:16:35'),
(516, NULL, 'candidate', 'sarah.johnson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'blocked', 'Rate limit exceeded', NULL, '2025-08-13 10:56:06'),
(517, NULL, 'candidate', 'david.wilson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Account not found', NULL, '2025-08-13 16:53:08'),
(518, 3, 'candidate', 'john.smith@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 13:59:55'),
(519, 3, 'candidate', 'john.smith@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 15:04:58'),
(520, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 12:31:25'),
(521, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 15:53:29'),
(522, 3, 'candidate', 'john.smith@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 09:42:25'),
(523, 3, 'candidate', 'john.smith@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 11:57:22'),
(524, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 06:44:56'),
(525, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 07:22:00'),
(526, 7, 'candidate', 'david.wilson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 07:23:55'),
(527, 7, 'candidate', 'david.wilson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 09:31:41'),
(528, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 07:18:01'),
(529, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-14 09:10:58'),
(530, 4, 'candidate', 'sarah.johnson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 06:05:48'),
(531, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-14 09:54:05'),
(532, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 11:47:50'),
(533, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 15:01:10'),
(534, 4, 'candidate', 'sarah.johnson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 16:19:08'),
(535, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 18:25:25'),
(536, 9, 'candidate', 'robert.taylor@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 11:01:02'),
(537, 9, 'candidate', 'robert.taylor@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 13:14:04'),
(538, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 16:52:31'),
(539, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-15 17:50:22'),
(540, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-16 16:08:03'),
(541, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-17 13:09:09'),
(542, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-17 17:06:07'),
(543, 1, 'admin', 'admin@recruitment.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-17 13:29:50'),
(544, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-17 12:34:56'),
(545, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-17 16:23:43'),
(546, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-17 18:35:58'),
(547, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 10:01:06'),
(548, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 10:50:48'),
(549, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 13:38:44'),
(550, 6, 'candidate', 'emma.davis@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 15:37:44'),
(551, 6, 'candidate', 'emma.davis@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 17:55:02'),
(552, 3, 'candidate', 'john.smith@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 06:34:14'),
(553, 3, 'candidate', 'john.smith@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 07:43:01'),
(554, 11, 'candidate', 'odwa@gmail.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 15:10:42'),
(555, 11, 'candidate', 'odwa@gmail.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 16:27:37'),
(556, 9, 'candidate', 'robert.taylor@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 15:00:20'),
(557, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 09:34:31'),
(558, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 13:14:33'),
(559, NULL, 'candidate', 'sarah.johnson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Invalid credentials', NULL, '2025-08-18 15:00:39'),
(560, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 14:43:20'),
(561, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-18 15:13:56'),
(562, 11, 'candidate', 'odwa@gmail.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 09:05:24'),
(563, 11, 'candidate', 'odwa@gmail.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-18 10:21:23'),
(564, 6, 'candidate', 'emma.davis@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 12:17:43'),
(565, 6, 'candidate', 'emma.davis@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 13:30:49'),
(566, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 16:14:39'),
(567, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 17:44:58'),
(568, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-19 07:35:46'),
(569, NULL, 'candidate', 'david.wilson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Account not found', NULL, '2025-08-19 08:47:32'),
(570, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-19 10:47:34'),
(571, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-19 12:17:18'),
(572, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 06:41:23'),
(573, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 08:58:09'),
(574, 11, 'candidate', 'odwa@gmail.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 10:48:47'),
(575, 11, 'candidate', 'odwa@gmail.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 13:12:44'),
(576, 3, 'candidate', 'john.smith@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-19 15:03:44'),
(577, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 10:12:22'),
(578, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 10:50:46'),
(579, 5, 'candidate', 'michael.brown@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 06:24:38'),
(580, 5, 'candidate', 'michael.brown@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 10:19:11'),
(581, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 11:21:17'),
(582, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 12:09:16'),
(583, 4, 'candidate', 'sarah.johnson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 08:05:00'),
(584, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 11:26:00'),
(585, 11, 'candidate', 'odwa@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 06:03:23'),
(586, 11, 'candidate', 'odwa@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 08:01:31'),
(587, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 13:18:41'),
(588, NULL, 'candidate', 'emma.davis@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'blocked', 'Rate limit exceeded', NULL, '2025-08-20 15:52:53'),
(589, 4, 'candidate', 'sarah.johnson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 06:34:28'),
(590, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 09:54:12'),
(591, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 11:22:49'),
(592, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-20 13:48:22'),
(593, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-20 16:14:42'),
(594, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-21 10:18:15'),
(595, 7, 'candidate', 'david.wilson@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-21 14:45:22'),
(596, 7, 'candidate', 'david.wilson@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-21 17:47:55'),
(597, NULL, 'candidate', 'robert.taylor@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Account not found', NULL, '2025-08-21 16:36:45'),
(598, 8, 'candidate', 'lisa.anderson@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-21 15:41:16'),
(599, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-21 18:53:24'),
(600, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-21 08:17:11'),
(601, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-21 12:07:30'),
(602, 6, 'candidate', 'emma.davis@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-21 06:18:44'),
(603, 6, 'candidate', 'emma.davis@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-21 07:27:15'),
(604, NULL, 'candidate', 'robert.taylor@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-08-22 14:17:43'),
(605, 11, 'candidate', 'odwa@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 10:46:04'),
(606, 11, 'candidate', 'odwa@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 11:35:45'),
(607, 9, 'candidate', 'robert.taylor@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-22 07:10:22'),
(608, 9, 'candidate', 'robert.taylor@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-22 09:15:34'),
(609, 6, 'candidate', 'emma.davis@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 06:35:19'),
(610, 6, 'candidate', 'emma.davis@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 10:29:57'),
(611, 9, 'candidate', 'robert.taylor@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 15:50:18'),
(612, 9, 'candidate', 'robert.taylor@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 18:51:01'),
(613, 4, 'candidate', 'sarah.johnson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 09:18:48'),
(614, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 12:32:55'),
(615, NULL, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'blocked', 'Rate limit exceeded', NULL, '2025-08-22 08:32:49'),
(616, 6, 'candidate', 'emma.davis@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 16:52:17'),
(617, 6, 'candidate', 'emma.davis@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 20:36:55'),
(618, 6, 'candidate', 'emma.davis@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-22 09:46:14'),
(619, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-23 13:31:17'),
(620, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-23 15:25:29'),
(621, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-23 13:25:37'),
(622, NULL, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-08-23 13:25:54'),
(623, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-24 09:31:42'),
(624, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-24 12:41:05'),
(625, 11, 'candidate', 'odwa@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-24 14:50:35'),
(626, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 16:44:13'),
(627, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 20:12:07'),
(628, NULL, 'company', 'samuel.danster@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Company account pending approval', NULL, '2025-08-25 11:21:50'),
(629, NULL, 'candidate', 'lubabalo619@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Account not found', NULL, '2025-08-25 11:56:41'),
(630, 11, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-25 06:59:23'),
(631, 3, 'candidate', 'john.smith@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-25 11:12:02'),
(632, 3, 'candidate', 'john.smith@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-25 13:20:15'),
(633, 11, 'candidate', 'odwa@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-25 12:13:22'),
(634, 7, 'candidate', 'david.wilson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 09:08:46'),
(635, 4, 'candidate', 'sarah.johnson@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 09:41:43'),
(636, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 07:41:38'),
(637, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 09:57:48'),
(638, 6, 'candidate', 'emma.davis@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 16:38:46'),
(639, 6, 'candidate', 'emma.davis@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-25 18:37:04'),
(640, 1, 'admin', 'admin@recruitment.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-26 13:39:30'),
(641, 7, 'candidate', 'david.wilson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-26 15:01:35'),
(642, 7, 'candidate', 'david.wilson@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-26 18:36:55'),
(643, 6, 'candidate', 'emma.davis@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-26 10:24:24'),
(644, 6, 'candidate', 'emma.davis@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-26 12:42:22'),
(645, NULL, 'candidate', 'lubabalo619@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-08-26 14:11:35'),
(646, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-26 09:08:56'),
(647, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-26 13:31:24'),
(648, 4, 'candidate', 'sarah.johnson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-26 15:59:53'),
(649, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-26 17:51:59'),
(650, NULL, 'admin', 'admin@recruitment.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Invalid credentials', NULL, '2025-08-26 12:47:01'),
(651, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 06:55:42'),
(652, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 08:59:44'),
(653, 8, 'candidate', 'lisa.anderson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-27 15:23:41'),
(654, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-27 19:18:11'),
(655, 11, 'candidate', 'odwa@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 16:40:57'),
(656, 11, 'candidate', 'odwa@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 17:37:21'),
(657, 7, 'candidate', 'david.wilson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 15:17:55'),
(658, 7, 'candidate', 'david.wilson@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-27 17:30:27'),
(659, NULL, 'company', 'samuel.danster@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Company account pending approval', NULL, '2025-08-28 06:52:29'),
(660, 6, 'candidate', 'emma.davis@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-28 10:06:35'),
(661, 6, 'candidate', 'emma.davis@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-28 12:02:56'),
(662, 6, 'candidate', 'emma.davis@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-28 15:10:26'),
(663, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-28 16:14:37'),
(664, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-08-28 19:56:12'),
(665, 9, 'candidate', 'robert.taylor@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-28 07:56:21'),
(666, 9, 'candidate', 'robert.taylor@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-28 11:20:22'),
(667, 8, 'candidate', 'lisa.anderson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 15:06:11'),
(668, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 18:40:41'),
(669, 8, 'candidate', 'lisa.anderson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 11:05:15'),
(670, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 12:05:55'),
(671, 8, 'candidate', 'lisa.anderson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 12:32:08'),
(672, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 13:44:07'),
(673, NULL, 'candidate', 'jennifer.martinez@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Invalid credentials', NULL, '2025-08-29 07:29:47'),
(674, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 12:54:14'),
(675, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 16:24:23'),
(676, 6, 'candidate', 'emma.davis@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 14:59:09'),
(677, 6, 'candidate', 'emma.davis@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 16:41:35'),
(678, 1, 'admin', 'admin@recruitment.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 07:27:32'),
(679, 1, 'admin', 'admin@recruitment.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 09:06:52'),
(680, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-08-29 15:31:47'),
(681, NULL, 'candidate', 'michael.brown@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Account not found', NULL, '2025-08-29 14:35:05'),
(682, NULL, 'candidate', 'odwa@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-08-30 14:09:00'),
(683, NULL, 'candidate', 'lubabalo619@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-08-31 08:50:50'),
(684, NULL, 'candidate', 'john.smith@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-09-01 15:14:34'),
(685, 11, 'candidate', 'odwa@gmail.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 12:26:59'),
(686, 11, 'candidate', 'odwa@gmail.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 13:45:25'),
(687, 9, 'candidate', 'robert.taylor@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 06:14:01'),
(688, 9, 'candidate', 'robert.taylor@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 06:45:45'),
(689, 5, 'candidate', 'michael.brown@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-01 06:05:53'),
(690, 5, 'candidate', 'michael.brown@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-01 07:06:15'),
(691, 5, 'candidate', 'michael.brown@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 16:00:55'),
(692, 5, 'candidate', 'michael.brown@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 18:07:36');
INSERT INTO `audit_trail` (`id`, `user_id`, `user_type`, `email`, `action`, `ip_address`, `user_agent`, `status`, `failure_reason`, `session_id`, `created_at`) VALUES
(693, 7, 'candidate', 'david.wilson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 11:03:10'),
(694, 7, 'candidate', 'david.wilson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 12:36:46'),
(695, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 07:58:46'),
(696, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 10:46:24'),
(697, 5, 'candidate', 'michael.brown@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 11:53:27'),
(698, 5, 'candidate', 'michael.brown@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 12:46:24'),
(699, 8, 'candidate', 'lisa.anderson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 12:39:06'),
(700, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 13:12:17'),
(701, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 11:39:47'),
(702, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 14:54:12'),
(703, 9, 'candidate', 'robert.taylor@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 10:59:18'),
(704, 9, 'candidate', 'robert.taylor@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 11:38:53'),
(705, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 09:37:12'),
(706, NULL, 'candidate', 'sarah.johnson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'failed', 'Company account pending approval', NULL, '2025-09-01 12:22:17'),
(707, 11, 'candidate', 'odwa@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 10:26:49'),
(708, 7, 'candidate', 'david.wilson@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 09:01:04'),
(709, 7, 'candidate', 'david.wilson@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-01 09:49:18'),
(710, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 10:21:53'),
(711, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 06:32:25'),
(712, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 09:20:12'),
(713, NULL, 'candidate', 'john.smith@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Company account pending approval', NULL, '2025-09-02 08:12:40'),
(714, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 15:37:37'),
(715, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 18:58:05'),
(716, 11, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 09:24:17'),
(717, 11, 'candidate', 'odwa@gmail.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 10:22:38'),
(718, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-02 12:49:11'),
(719, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-02 15:42:25'),
(720, NULL, 'candidate', 'masandendyaluvane@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Invalid credentials', NULL, '2025-09-02 06:47:00'),
(721, 1, 'admin', 'admin@recruitment.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 15:02:36'),
(722, 1, 'admin', 'admin@recruitment.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 16:05:50'),
(723, NULL, 'admin', 'admin@recruitment.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Account not found', NULL, '2025-09-02 06:50:33'),
(724, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 08:27:45'),
(725, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 10:51:58'),
(726, 3, 'candidate', 'john.smith@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 07:12:27'),
(727, 3, 'candidate', 'john.smith@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 07:55:33'),
(728, 8, 'candidate', 'lisa.anderson@email.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 15:50:17'),
(729, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 18:08:32'),
(730, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 10:51:10'),
(731, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 14:10:04'),
(732, 5, 'candidate', 'michael.brown@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 13:01:19'),
(733, 5, 'candidate', 'michael.brown@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-02 16:38:12'),
(734, 3, 'candidate', 'john.smith@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-02 14:52:01'),
(735, 11, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 11:17:41'),
(736, 11, 'candidate', 'odwa@gmail.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 14:54:32'),
(737, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 12:53:22'),
(738, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 15:14:47'),
(739, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'login', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 12:47:15'),
(740, 5, 'company', 'jacky.mashapu@sa-npc.co.za', 'logout', '41.79.196.45', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 15:26:02'),
(741, 7, 'candidate', 'david.wilson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-03 07:45:16'),
(742, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 11:21:06'),
(743, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 12:24:53'),
(744, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 06:58:47'),
(745, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 07:54:56'),
(746, 8, 'candidate', 'lisa.anderson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-03 08:20:25'),
(747, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-03 09:54:10'),
(748, 5, 'candidate', 'michael.brown@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 10:10:06'),
(749, 5, 'candidate', 'michael.brown@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-03 13:38:03'),
(750, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 12:38:38'),
(751, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 15:33:58'),
(752, 4, 'candidate', 'sarah.johnson@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 13:36:20'),
(753, 4, 'candidate', 'sarah.johnson@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 15:37:53'),
(754, 6, 'candidate', 'emma.davis@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 13:25:44'),
(755, 6, 'candidate', 'emma.davis@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 13:56:25'),
(756, 11, 'candidate', 'odwa@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 13:10:18'),
(757, 7, 'candidate', 'david.wilson@email.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 16:03:11'),
(758, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 07:14:49'),
(759, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 08:25:21'),
(760, 1, 'admin', 'admin@recruitment.com', 'login', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 12:50:14'),
(761, 1, 'admin', 'admin@recruitment.com', 'logout', '41.79.196.45', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-04 14:12:11'),
(762, 1, 'admin', 'admin@recruitment.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 15:39:30'),
(763, 1, 'admin', 'admin@recruitment.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 18:29:07'),
(764, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 14:39:05'),
(765, 8, 'candidate', 'lisa.anderson@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 14:11:11'),
(766, 8, 'candidate', 'lisa.anderson@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-04 17:54:26'),
(767, NULL, 'candidate', 'lubabalo619@gmail.com', 'login', '172.16.1.50', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Account not found', NULL, '2025-09-04 07:35:34'),
(768, NULL, 'company', 'samuel.danster@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'failed', 'Invalid credentials', NULL, '2025-09-05 11:43:16'),
(769, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 12:23:30'),
(770, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 14:07:39'),
(771, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 09:28:45'),
(772, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 13:23:37'),
(773, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 14:07:32'),
(774, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '203.194.55.32', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 18:05:41'),
(775, 11, 'candidate', 'odwa@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-05 12:43:58'),
(776, 11, 'candidate', 'odwa@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-05 13:50:45'),
(777, 11, 'candidate', 'odwa@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-05 09:46:58'),
(778, 11, 'candidate', 'odwa@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-05 11:27:02'),
(779, 2, 'company', 'jongikhaya.stuurman@petrosa.co.za', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 13:12:22'),
(780, 12, 'candidate', 'lubabalo619@gmail.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 10:58:37'),
(781, 12, 'candidate', 'lubabalo619@gmail.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 14:27:02'),
(782, 10, 'candidate', 'jennifer.martinez@email.com', 'login', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 08:51:41'),
(783, 10, 'candidate', 'jennifer.martinez@email.com', 'logout', '10.0.0.25', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'success', NULL, NULL, '2025-09-05 12:12:49'),
(784, 11, 'candidate', 'odwa@gmail.com', 'login', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-07 13:59:07'),
(785, 11, 'candidate', 'odwa@gmail.com', 'logout', '192.168.1.100', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0', 'success', NULL, NULL, '2025-09-07 17:44:57'),
(786, 1, 'admin', 'admin@recruitment.com', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'nlt0dj8f9h2con6m6v8qdrb3sn', '2025-09-07 19:27:43'),
(787, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, '2l71buubnkae2q7vlhsarkq7is', '2025-09-07 19:28:09'),
(788, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'ob75dtldfkca0leg5kfd5cbv85', '2025-09-07 19:29:07'),
(789, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'o94lniil0em8n72e0snhuf1pa3', '2025-09-07 20:47:37'),
(790, NULL, 'candidate', 'masande.ndyaluvane@gmail.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'failed', 'Invalid email or password', 'rhigtivd1teua0hfmb24qoofju', '2025-09-07 20:49:16'),
(791, 1, 'candidate', 'masandendyaluvane@gmail.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, 'rhigtivd1teua0hfmb24qoofju', '2025-09-07 20:49:30'),
(792, 1, 'candidate', 'masandendyaluvane@gmail.com', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, 'gf1no6esuv242duikgbc2ljm0r', '2025-09-07 20:50:38'),
(793, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'om768n6olhgfohic9cujdoc1rh', '2025-09-07 21:27:45'),
(794, 1, 'admin', 'admin@recruitment.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, '1flutbjb8vq8vvmqo5hin06vm9', '2025-09-07 21:28:03'),
(795, 1, 'admin', 'admin@recruitment.com', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'm6apohmn0jtuck0s9eal9rnbhu', '2025-09-07 21:28:56'),
(796, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'o18pim9ttkoqh3j2p762c90nfq', '2025-09-07 21:29:34'),
(797, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, '2qh46s5avkme4rr2vraqeno21c', '2025-09-07 21:32:35'),
(798, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, 'qaq45ba037vrfqdvvislvsunet', '2025-09-07 23:03:53'),
(799, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36', 'success', NULL, '7m7rc33j35st14el9329h738ct', '2025-09-07 23:04:20'),
(800, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, '', '2025-09-07 23:43:39'),
(801, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, 'i234qlg43duckvncem02qj3uv9', '2025-09-07 23:43:54'),
(802, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, 'o5uot864rn6ffbv3vspc1plc4u', '2025-09-07 23:44:16'),
(803, 3, 'company', 'samuel.danster@petrosa.co.za', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, '7iensn0qglcnss2rjiq253caeb', '2025-09-07 23:44:37'),
(804, NULL, 'company', 'odwa@gmail.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'failed', 'Invalid email or password', '2rsd3kbu8qv6ca8rkh1pvfgi15', '2025-09-07 23:45:11'),
(805, 11, 'candidate', 'odwa@gmail.com', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, '2rsd3kbu8qv6ca8rkh1pvfgi15', '2025-09-07 23:45:24'),
(806, 11, 'candidate', 'odwa@gmail.com', 'logout', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, 'n04t52ivsco3ecpgae3rfjp5ne', '2025-09-07 23:46:45'),
(807, 3, 'company', 'samuel.danster@petrosa.co.za', 'login', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL, '37mkh93vgg6sluum4c5kdsk1dp', '2025-09-07 23:46:59');

-- --------------------------------------------------------

--
-- Table structure for table `candidates`
--

CREATE TABLE `candidates` (
  `id` int(11) NOT NULL,
  `first_name` varchar(50) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `candidate_type` enum('internal','external') DEFAULT 'external',
  `company_id` int(11) DEFAULT NULL,
  `employee_id` varchar(50) DEFAULT NULL,
  `current_department` varchar(100) DEFAULT NULL,
  `current_position` varchar(100) DEFAULT NULL,
  `approval_status` enum('pending','approved','rejected') DEFAULT 'approved',
  `employment_status` enum('active','inactive','terminated') DEFAULT 'active',
  `deactivated_at` timestamp NULL DEFAULT NULL,
  `deactivated_by` int(11) DEFAULT NULL,
  `deactivation_reason` text DEFAULT NULL,
  `approved_at` timestamp NULL DEFAULT NULL,
  `approved_by` int(11) DEFAULT NULL,
  `rejection_reason` text DEFAULT NULL,
  `address` text DEFAULT NULL,
  `date_of_birth` date DEFAULT NULL,
  `gender` enum('male','female','other') DEFAULT NULL,
  `nationality` enum('south_african','foreign') DEFAULT 'south_african',
  `id_number` varchar(13) DEFAULT NULL,
  `passport_number` varchar(20) DEFAULT NULL,
  `profile_picture` varchar(255) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `candidates`
--

INSERT INTO `candidates` (`id`, `first_name`, `last_name`, `email`, `password`, `phone`, `candidate_type`, `company_id`, `employee_id`, `current_department`, `current_position`, `approval_status`, `employment_status`, `deactivated_at`, `deactivated_by`, `deactivation_reason`, `approved_at`, `approved_by`, `rejection_reason`, `address`, `date_of_birth`, `gender`, `nationality`, `id_number`, `passport_number`, `profile_picture`, `created_at`, `updated_at`) VALUES
(1, 'masande', 'ndyaluvane', 'masandendyaluvane@gmail.com', '$2y$10$4kbvEJRnHXXbQBGkEZe2GuK9Gp3deqqMVhxMPFN5nylVfB9sxOF0q', '0726130918', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, '27 Arum sands \r\nGonubie \r\neast london\r\n5257', '1985-06-29', 'male', 'south_african', NULL, NULL, '68903b40a49af.jpg', '2025-08-03 14:24:25', '2025-08-04 04:46:56'),
(3, 'John', 'Smith', 'john.smith@email.com', '$2y$10$6tBZw3HHn9ZnWb0cyeXK/uvvPzWQwE4JPHZyaJpN82IOJFWu/259.', '555-0101', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:33', '2025-08-08 18:02:33'),
(4, 'Sarah', 'Johnson', 'sarah.johnson@email.com', '$2y$10$BqjseaSyrXndrEWXJfUCDepYGby63y9kJuS.OjY6lRU26oBnSfSLC', '555-0102', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:33', '2025-08-08 18:02:33'),
(5, 'Michael', 'Brown', 'michael.brown@email.com', '$2y$10$zRqAk8bsYuoCyKRVf9zPAe2wMQWWl/D8TDo0LQWcizQYvIHrd5aSa', '555-0103', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:33', '2025-08-08 18:02:33'),
(6, 'Emma', 'Davis', 'emma.davis@email.com', '$2y$10$hclAA/SWoAXhYhDgOmK2TujWuAEi9Mx4yRMnfbUPTOFd/xAFcWaK.', '555-0104', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:34', '2025-08-08 18:02:34'),
(7, 'David', 'Wilson', 'david.wilson@email.com', '$2y$10$1cbexC3kVdrxxYM6gPR/8.1Kl4wQAZLst9CuwnqH396actMFEHiMG', '555-0105', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:34', '2025-08-08 18:02:34'),
(8, 'Lisa', 'Anderson', 'lisa.anderson@email.com', '$2y$10$osC.i2Fbh9tnXhlWelGMnuJ5lnwZdgwPemUeJyWkiU7w0VnXcxIJe', '555-0106', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:34', '2025-08-08 18:02:34'),
(9, 'Robert', 'Taylor', 'robert.taylor@email.com', '$2y$10$XoUIg1BW/KyXe1cr4IVLQOMXuLXuzmFx6iE/YTuoUPEOrlPDYZWz6', '555-0107', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:34', '2025-08-08 18:02:34'),
(10, 'Jennifer', 'Martinez', 'jennifer.martinez@email.com', '$2y$10$5VZKTd5eLChlx2gL/TlOkOyyMkZVAb//mrVANHNtwVOcT9pMWXPJe', '555-0108', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', NULL, NULL, NULL, '2025-08-08 18:02:34', '2025-08-08 18:02:34'),
(11, 'Odwa', 'Ndyaluvane', 'odwa@gmail.com', '$2y$10$s7afEqxZDfY9GbmjfdF.Y.BmbIRvkLLbZA78vSuhmL7zR2/.3UNue', '0726130918', 'internal', 2, '34990', 'IS', 'IS Specialist', 'approved', 'active', NULL, NULL, NULL, '2025-09-03 13:05:53', 2, NULL, '13 dlilanga street\r\nikhwezi', '1990-12-25', 'male', 'south_african', '9012255469082', NULL, '68b84027715a2.jpeg', '2025-09-03 12:56:09', '2025-09-07 21:24:08'),
(12, 'Lubabalo', 'Ndumndum', 'lubabalo619@gmail.com', '$2y$10$KW2JcibpnnLuXMGu8/kz2ORtQYYXWxaeB36PKamhsis8peja/LAo2', '0726130918', 'external', NULL, NULL, NULL, NULL, 'approved', 'active', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'south_african', '9206295468084', NULL, NULL, '2025-09-03 17:52:34', '2025-09-03 17:52:34'),
(13, 'Masande', 'N', 'masande.ndyaluvane@petrosa.co.za', '$2y$10$lHmNA4D8YCYXHtpxSqFMFOfTD7IuetM7s/bDfwT.7O5Ksls/1yvcC', '0726130918', 'internal', 2, '234512', 'IT', 'Technician', 'approved', 'active', NULL, NULL, NULL, '2025-09-07 20:53:06', 2, NULL, NULL, NULL, NULL, 'south_african', '8506295469082', NULL, NULL, '2025-09-07 20:52:37', '2025-09-07 20:53:06');

-- --------------------------------------------------------

--
-- Table structure for table `candidate_documents`
--

CREATE TABLE `candidate_documents` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `document_type` enum('cv','cover_letter','certificate','transcript','other') NOT NULL,
  `title` varchar(200) NOT NULL,
  `file_path` varchar(255) NOT NULL,
  `file_size` int(11) DEFAULT NULL,
  `file_type` varchar(50) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `is_public` tinyint(1) DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `candidate_documents`
--

INSERT INTO `candidate_documents` (`id`, `candidate_id`, `document_type`, `title`, `file_path`, `file_size`, `file_type`, `description`, `is_public`, `created_at`) VALUES
(1, 1, 'other', 'Drivers license', '6890384727bcb.pdf', 749058, 'application/pdf', '', 1, '2025-08-04 04:34:15'),
(2, 1, 'certificate', 'btech it', '68903874308d1.pdf', 45845, 'application/pdf', '', 1, '2025-08-04 04:35:00'),
(3, 1, 'certificate', 'btech it', '689039894163d.pdf', 45845, 'application/pdf', '', 1, '2025-08-04 04:39:37'),
(4, 1, 'certificate', 'btech it', '68903a447a06c.pdf', 45845, 'application/pdf', '', 1, '2025-08-04 04:42:44'),
(5, 1, 'certificate', 'Post Graduate Certificate in Public Management', '68908d82acbbe.pdf', 154063, 'application/pdf', '', 1, '2025-08-04 10:37:54'),
(6, 11, 'cv', 'Resume', '68b8425ddda39.pdf', 1577, 'application/pdf', '', 1, '2025-09-03 13:27:57'),
(7, 11, 'other', 'Drivers license', '68b8428ac1aed.pdf', 3389, 'application/pdf', '', 1, '2025-09-03 13:28:42');

-- --------------------------------------------------------

--
-- Table structure for table `certificates`
--

CREATE TABLE `certificates` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `title` varchar(200) NOT NULL,
  `issuing_organization` varchar(200) DEFAULT NULL,
  `issue_date` date DEFAULT NULL,
  `expiry_date` date DEFAULT NULL,
  `credential_id` varchar(100) DEFAULT NULL,
  `credential_url` varchar(500) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `file_path` varchar(255) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `certificates`
--

INSERT INTO `certificates` (`id`, `candidate_id`, `title`, `issuing_organization`, `issue_date`, `expiry_date`, `credential_id`, `credential_url`, `description`, `file_path`, `created_at`) VALUES
(1, 1, 'Prince 2', 'AXELOS', '2019-05-29', NULL, 'GR656091624MN', '', '', '688f9f3995544.pdf', '2025-08-03 17:41:13'),
(2, 1, 'Cobit 5', 'IT Winners', '2014-10-03', NULL, '', '', '', '688f9fbb29462.pdf', '2025-08-03 17:43:23'),
(3, 1, 'ITIL', 'AXELOS', '2015-02-25', NULL, '02992540-01-TQG5', '', '', '688fa04d6d9b7.pdf', '2025-08-03 17:45:49'),
(4, 11, 'prince 2', 'Axelos', '2025-09-01', NULL, '', '', '', '68b8423bbb120.pdf', '2025-09-03 13:27:23');

-- --------------------------------------------------------

--
-- Table structure for table `companies`
--

CREATE TABLE `companies` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `address` text DEFAULT NULL,
  `website` varchar(100) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `logo` varchar(255) DEFAULT NULL,
  `status` enum('pending','approved','rejected') DEFAULT 'pending',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `contact_person_name` varchar(100) DEFAULT 'Contact Person',
  `contact_person_email` varchar(100) DEFAULT 'contact@company.com',
  `contact_person_phone` varchar(20) DEFAULT NULL,
  `contact_person_position` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `companies`
--

INSERT INTO `companies` (`id`, `name`, `email`, `password`, `phone`, `address`, `website`, `description`, `logo`, `status`, `created_at`, `updated_at`, `contact_person_name`, `contact_person_email`, `contact_person_phone`, `contact_person_position`) VALUES
(2, 'PetroSA', '', '', '+27 21 929 3000', '161 Frans Conradie drive\r\nParow\r\nCape Town', 'https://www.petrosa.co.za', 'The Petroleum Oil and Gas Corporation of South Africa (SOC) Limited (PetroSA) is the country’s National Oil Company. PetroSA is a subsidiary of the CEF, which is wholly owned by the State and reports to the Department of Minerals and Energy.', '688f8dacc28f4.png', 'approved', '2025-08-03 16:26:20', '2025-08-03 16:26:20', 'Nonny Mashika', 'nonny.mashika@petrosa.co.za', '+27 21 929 3000', 'Group Manager Communications'),
(8, 'SANPC', 'jacky.mashapu@sa-npc.co.za', '$2y$10$EcyVB9QxstEOfKKItqmGxO/mkWJLLzf5OmynsXdQHh6Jx5NHlLpcy', '0726130918', '1ST Floor Building 1, Corporate Campus, Waterfall City, Midrand', 'https://www.sa-npc.co.za', 'The South African National Petroleum Company (SANPC) is the newly established State-Owned Company. This company was formed after the merger of three of the Central Energy Fund (CEF) subsidiaries, Igas, PetroSA and Strategic Fuel Fund.\r\n\r\nThe decision to merge these companies was a culmination of a policy statement made by CEF’s shareholder, the Minister of Mineral Resources and Energy, Mr Gwede Mantashe at the Portfolio Committee on Mineral Resources and Energy held on 7 May 2020. This policy statement was also endorsed by Cabinet’s approval on 10 June 2020, which paved a way to allow the state to participate meaningfully in the oil and gas developments.', '689098de48b52.png', 'approved', '2025-08-04 11:26:22', '2025-08-04 11:26:22', 'Jacky Mashapu', 'jacky.mashapu@sa-npc.co.za', '0726130918', 'GM Communications');

-- --------------------------------------------------------

--
-- Table structure for table `company_users`
--

CREATE TABLE `company_users` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `position` varchar(100) DEFAULT NULL,
  `is_primary` tinyint(1) DEFAULT 0,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `company_users`
--

INSERT INTO `company_users` (`id`, `company_id`, `name`, `email`, `password`, `phone`, `position`, `is_primary`, `status`, `created_at`, `updated_at`) VALUES
(2, 2, 'jongikhaya stuurman', 'jongikhaya.stuurman@petrosa.co.za', '$2y$10$ilNMAoUw8UYocJ2gHRMFROSqp3OsUkd3AjobeVOKgJQ0urofx7Qzi', '0726130918', 'HR Manager', 0, 'active', '2025-08-03 16:26:20', '2025-08-03 16:38:23'),
(3, 2, 'samuel danster', 'samuel.danster@petrosa.co.za', '$2y$10$NEiwU2AGdjHlBn421b1/dOXuwRu547a2oXVNTHt/Ezvg61wvBPLRG', '0726130918', 'HR Manager', 1, 'active', '2025-08-03 16:38:23', '2025-08-03 16:38:23'),
(5, 8, 'jacky mashapu', 'jacky.mashapu@sa-npc.co.za', '$2y$10$vBdBX/.VhUW1tTpeVwBKZuZg0aiT7Uys.PpaSW1p.z6.EbzdyWBiC', '0726130918', 'GM Communications', 1, 'active', '2025-08-04 11:26:22', '2025-08-04 11:26:22');

-- --------------------------------------------------------

--
-- Table structure for table `education`
--

CREATE TABLE `education` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `institution` varchar(100) NOT NULL,
  `degree` varchar(100) DEFAULT NULL,
  `field_of_study` varchar(100) DEFAULT NULL,
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `grade` varchar(20) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `education`
--

INSERT INTO `education` (`id`, `candidate_id`, `institution`, `degree`, `field_of_study`, `start_date`, `end_date`, `grade`, `description`, `created_at`) VALUES
(1, 1, 'Ikwezi Technical skill centre', 'Matric', '', '2002-01-03', '2002-11-30', '12', '', '2025-08-03 17:31:24'),
(2, 1, 'Walter Sisulu University', 'Diploma', 'Information Technology', '2005-01-03', '2007-12-31', 'NQF7', '', '2025-08-03 17:33:26'),
(3, 1, 'Walter Sisulu University', 'BTech', 'Information Technology', '2008-01-03', '2008-12-31', 'NQF8', '', '2025-08-03 17:34:43'),
(4, 11, 'University of the western cape', 'Degree', 'Information Technology', '2025-09-02', '2025-09-03', 'NQF8', '', '2025-09-03 13:25:42');

-- --------------------------------------------------------

--
-- Table structure for table `email_notifications`
--

CREATE TABLE `email_notifications` (
  `id` int(11) NOT NULL,
  `to_email` varchar(255) NOT NULL,
  `subject` varchar(500) NOT NULL,
  `message` text NOT NULL,
  `status` enum('pending','sent','failed') DEFAULT 'pending',
  `error_message` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `sent_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `email_notifications`
--

INSERT INTO `email_notifications` (`id`, `to_email`, `subject`, `message`, `status`, `error_message`, `created_at`, `sent_at`) VALUES
(1, 'masandendyaluvane@gmail.com', 'Great News! You\'ve Been Shortlisted - Senior IT Desktop Support Engineer (Level 2 - Level 3)', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Application Status Update</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Application Status Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Job Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #28a745;\'>\n                        <h2 style=\'margin: 0 0 5px 0; color: #333; font-size: 22px;\'>Senior IT Desktop Support Engineer (Level 2 - Level 3)</h2>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear masande,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Congratulations! Your application for Senior IT Desktop Support Engineer (Level 2 - Level 3) at PetroSA has been shortlisted. The hiring team will be in touch soon.\n                        </p>\n                    </div>\n                    \n                    <!-- Status Badge -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <span style=\'background-color: #28a745; color: white; padding: 12px 24px; border-radius: 25px; font-size: 16px; font-weight: bold; text-transform: uppercase;\'>\n                            Shortlisted\n                        </span>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/candidate/applications.php\' \n                           style=\'background-color: #007bff; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            View My Applications\n                        </a>\n                    </div>\n                    \n                    <!-- Tips Section -->\n                    <div style=\'background-color: #e9ecef; padding: 20px; border-radius: 8px; margin-top: 30px;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #495057; font-size: 18px;\'>\n                            <i style=\'color: #007bff;\'>💡</i> What\'s Next?\n                        </h3>\n                        <p style=\'margin: 0; color: #495057; line-height: 1.6;\'>You\'ve made it to the next round! The hiring team will be contacting you soon for the next steps. Keep an eye on your email and phone.</p>\n                    </div>\n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, visit our website.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'failed', 'SMTP Error: Could not authenticate.', '2025-09-07 20:33:14', NULL),
(2, 'odwa@gmail.com', 'Internal Transfer Application Approved - PetroSA', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Internal Transfer Application Update</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Internal Transfer Application Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>✅</div>\n                        <h2 style=\'color: #28a745; margin: 0; font-size: 24px; text-transform: capitalize;\'>Application Approved</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>Internal Transfer Request</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Congratulations! Your internal transfer application has been approved by your HR department. You can now log into the recruitment portal using your credentials and start applying for internal positions within PetroSA.\n                        </p>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    \n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/auth/login.php\' \n                           style=\'background-color: #28a745; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            Login to Your Account\n                        </a>\n                    </div>\n                    \n                    <!-- Next Steps -->\n                    <div style=\'background-color: #d4edda; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #155724; font-size: 18px;\'>\n                            🎉 What\'s Next?\n                        </h3>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #155724; line-height: 1.6;\'>\n                            <li>Log into the recruitment portal using your existing credentials</li>\n                            <li>Browse internal job opportunities</li>\n                            <li>Apply for positions that match your skills and interests</li>\n                            <li>Update your profile with current information</li>\n                        </ul>\n                    </div>\n                    \n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact your HR department.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'failed', 'SMTP Error: Could not authenticate.', '2025-09-07 20:33:17', NULL),
(3, 'odwa@gmail.com', 'Internal Transfer Application - PetroSA', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Internal Transfer Application Update</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Internal Transfer Application Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>❌</div>\n                        <h2 style=\'color: #dc3545; margin: 0; font-size: 24px; text-transform: capitalize;\'>Application Rejected</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #dc3545;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>Internal Transfer Request</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Thank you for your interest in internal opportunities at PetroSA. After careful review, we are unable to approve your internal transfer application at this time. Reason: Position requirements do not match current qualifications. Please discuss with HR for future opportunities. Please feel free to discuss this with your HR representative for more information about future opportunities.\n                        </p>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    \n                    <div style=\'background-color: #f8d7da; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #dc3545;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #721c24; font-size: 18px;\'>\n                            📞 Need More Information?\n                        </h3>\n                        <p style=\'margin: 0; color: #721c24; line-height: 1.6;\'>\n                            Please contact your HR representative to discuss this decision and learn about future opportunities within the company.\n                        </p>\n                    </div>\n                    \n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact your HR department.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'failed', 'SMTP Error: Could not authenticate.', '2025-09-07 20:33:20', NULL),
(4, 'masandendyaluvane@gmail.com', 'SMTP Email Test - SANPC Recruitment Portal', '\n        <div style=\'font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px;\'>\n            <h2 style=\'color: #007bff;\'>SMTP Email Test Successful!</h2>\n            <p>This is a test email from SANPC Recruitment Portal using production SMTP settings.</p>\n            <ul>\n                <li><strong>SMTP Host:</strong> mail.sanpcref.co.za</li>\n                <li><strong>SMTP Port:</strong> 587</li>\n                <li><strong>Encryption:</strong> tls</li>\n                <li><strong>From Email:</strong> recruitment@sanpcref.co.za</li>\n            </ul>\n            <p><strong>Timestamp:</strong> 2025-09-07 22:43:49</p>\n            <p>If you receive this email, the SMTP configuration is working correctly!</p>\n        </div>', 'sent', NULL, '2025-09-07 20:43:49', '2025-09-07 20:43:50'),
(5, 'masandendyaluvane@gmail.com', 'Great News! You\'ve Been Shortlisted - Senior IT Desktop Support Engineer (Level 2 - Level 3) at SANPC', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Application Status Update - SANPC</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>SANPC Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Application Status Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Job Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #28a745;\'>\n                        <h2 style=\'margin: 0 0 5px 0; color: #333; font-size: 22px;\'>Senior IT Desktop Support Engineer (Level 2 - Level 3)</h2>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear masande,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Congratulations! Your application for Senior IT Desktop Support Engineer (Level 2 - Level 3) at PetroSA has been shortlisted. The hiring team will be in touch soon.\n                        </p>\n                    </div>\n                    \n                    <!-- Status Badge -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <span style=\'background-color: #28a745; color: white; padding: 12px 24px; border-radius: 25px; font-size: 16px; font-weight: bold; text-transform: uppercase;\'>\n                            Shortlisted\n                        </span>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/candidate/applications.php\' \n                           style=\'background-color: #007bff; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            View My Applications\n                        </a>\n                    </div>\n                    \n                    <!-- Tips Section -->\n                    <div style=\'background-color: #e9ecef; padding: 20px; border-radius: 8px; margin-top: 30px;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #495057; font-size: 18px;\'>\n                            💡 What\'s Next?\n                        </h3>\n                        <p style=\'margin: 0; color: #495057; line-height: 1.6;\'>You\'ve made it to the next round! The hiring team will be contacting you soon for the next steps. Keep an eye on your email and phone.</p>\n                    </div>\n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from SANPC Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact recruitment@sanpcref.co.za\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-07 20:43:50', '2025-09-07 20:43:51'),
(6, 'odwa@gmail.com', 'Internal Transfer Application Approved - SANPC', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Internal Transfer Application Update - SANPC</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>SANPC Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Internal Transfer Application Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>✅</div>\n                        <h2 style=\'color: #28a745; margin: 0; font-size: 24px; text-transform: capitalize;\'>Application Approved</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>Internal Transfer Request</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Congratulations! Your internal transfer application has been approved by the HR department. You can now log into the recruitment portal using your credentials and start applying for internal positions within SANPC.\n                        </p>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    \n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/auth/login.php\' \n                           style=\'background-color: #28a745; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            Login to Your Account\n                        </a>\n                    </div>\n                    \n                    <!-- Next Steps -->\n                    <div style=\'background-color: #d4edda; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #155724; font-size: 18px;\'>\n                            🎉 What\'s Next?\n                        </h3>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #155724; line-height: 1.6;\'>\n                            <li>Log into the recruitment portal using your existing credentials</li>\n                            <li>Browse internal job opportunities</li>\n                            <li>Apply for positions that match your skills and interests</li>\n                            <li>Update your profile with current information</li>\n                        </ul>\n                    </div>\n                    \n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from SANPC Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact recruitment@sanpcref.co.za\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-07 20:43:51', '2025-09-07 20:43:51'),
(7, 'odwa@gmail.com', 'Internal Transfer Application - SANPC', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Internal Transfer Application Update - SANPC</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>SANPC Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Internal Transfer Application Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>❌</div>\n                        <h2 style=\'color: #dc3545; margin: 0; font-size: 24px; text-transform: capitalize;\'>Application Rejected</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #dc3545;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>Internal Transfer Request</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Thank you for your interest in internal opportunities at SANPC. After careful review, we are unable to approve your internal transfer application at this time. Reason: Current position requirements do not align with available internal opportunities. Please contact HR to discuss future possibilities. Please feel free to discuss this with your HR representative for more information about future opportunities.\n                        </p>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    \n                    <div style=\'background-color: #f8d7da; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #dc3545;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #721c24; font-size: 18px;\'>\n                            📞 Need More Information?\n                        </h3>\n                        <p style=\'margin: 0; color: #721c24; line-height: 1.6;\'>\n                            Please contact your HR representative at recruitment@sanpcref.co.za to discuss this decision and learn about future opportunities within SANPC.\n                        </p>\n                    </div>\n                    \n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from SANPC Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact recruitment@sanpcref.co.za\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-07 20:43:51', '2025-09-07 20:43:52'),
(8, 'masande.ndyaluvane@petrosa.co.za', 'Internal Transfer Application Approved - SANPC', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Internal Transfer Application Update - SANPC</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>SANPC Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Internal Transfer Application Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>✅</div>\n                        <h2 style=\'color: #28a745; margin: 0; font-size: 24px; text-transform: capitalize;\'>Application Approved</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>Internal Transfer Request</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Masande,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Congratulations! Your internal transfer application has been approved by the HR department. You can now log into the recruitment portal using your credentials and start applying for internal positions within SANPC.\n                        </p>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    \n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/auth/login.php\' \n                           style=\'background-color: #28a745; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            Login to Your Account\n                        </a>\n                    </div>\n                    \n                    <!-- Next Steps -->\n                    <div style=\'background-color: #d4edda; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #28a745;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #155724; font-size: 18px;\'>\n                            🎉 What\'s Next?\n                        </h3>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #155724; line-height: 1.6;\'>\n                            <li>Log into the recruitment portal using your existing credentials</li>\n                            <li>Browse internal job opportunities</li>\n                            <li>Apply for positions that match your skills and interests</li>\n                            <li>Update your profile with current information</li>\n                        </ul>\n                    </div>\n                    \n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from SANPC Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, contact recruitment@sanpcref.co.za\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-07 20:53:07', '2025-09-07 20:53:07'),
(9, 'odwa@gmail.com', 'Employment Status Update - SANPC', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Employment Status Update - SANPC</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #6c757d 0%, #495057 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>SANPC</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Employment Status Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Status Header -->\n                    <div style=\'text-align: center; margin-bottom: 30px;\'>\n                        <div style=\'font-size: 48px; margin-bottom: 15px;\'>⏸️</div>\n                        <h2 style=\'color: #ffc107; margin: 0; font-size: 24px;\'>Employment Status Changed</h2>\n                    </div>\n                    \n                    <!-- Company Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #ffc107;\'>\n                        <h3 style=\'margin: 0 0 5px 0; color: #333; font-size: 20px;\'>SANPC - Human Resources</h3>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            We are writing to inform you that your employment status has been temporarily changed to inactive. During this period, you will not receive notifications about internal job opportunities. Reason: suspended If you have any questions or concerns, please contact the HR department at recruitment@sanpcref.co.za.\n                        </p>\n                    </div>\n                    \n                    \n                    <!-- Reason Section -->\n                    <div style=\'background-color: #fff3cd; padding: 20px; border-radius: 8px; margin: 30px 0; border-left: 4px solid #ffc107;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #856404; font-size: 18px;\'>\n                            📋 Details\n                        </h3>\n                        <p style=\'margin: 0; color: #856404; line-height: 1.6;\'>\n                            <strong>Reason:</strong> suspended\n                        </p>\n                    </div>\n                    \n                    \n                    <!-- Important Notice -->\n                    <div style=\'background-color: #fff3cd; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #ffc107;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #856404; font-size: 18px;\'>\n                            📢 What This Means\n                        </h3>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #856404; line-height: 1.6;\'>\n                                <li>You will temporarily not see internal job postings</li>\n                                <li>Your access to the recruitment portal may be limited</li>\n                                <li>This status may be reviewed and changed by HR</li>\n                                <li>Contact HR if you believe this is an error</li>\n                            </ul>\n                    </div>\n                    \n                    <!-- Contact Information -->\n                    <div style=\'background-color: #e9ecef; padding: 20px; border-radius: 8px; margin-top: 30px;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #495057; font-size: 18px;\'>\n                            📞 Need Assistance?\n                        </h3>\n                        <p style=\'margin: 0; color: #495057; line-height: 1.6;\'>\n                            If you have questions about this decision or need clarification, please contact the HR department:\n                        </p>\n                        <p style=\'margin: 10px 0 0 0; color: #495057;\'>\n                            <strong>Email:</strong> recruitment@sanpcref.co.za<br>\n                            <strong>Subject:</strong> Employment Status Inquiry - Odwa Ndyaluvane\n                        </p>\n                    </div>\n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an official communication from SANPC Human Resources.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For inquiries, use the contact information provided above.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-07 21:23:57', '2025-09-07 21:23:58'),
(10, 'odwa@gmail.com', 'New Job Opportunity: IT Business Analyst - Recruitment Portal', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>New Job Opportunity - Recruitment Portal</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>New Job Opportunity</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Greeting -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <h2 style=\'color: #333; margin: 0 0 15px 0; font-size: 24px;\'>🎯 New Job Match Found!</h2>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin: 0;\'>\n                            Hi Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin: 15px 0 0 0;\'>\n                            Based on your previous applications, we found a new Information Technology opportunity that might interest you:\n                        </p>\n                    </div>\n                    \n                    <!-- Job Card -->\n                    <div style=\'background-color: #f8f9fa; padding: 25px; border-radius: 12px; margin: 30px 0; border-left: 4px solid #007bff; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\'>\n                        <div style=\'margin-bottom: 15px;\'>\n                            <h3 style=\'margin: 0; color: #007bff; font-size: 22px; font-weight: bold;\'>IT Business Analyst</h3>\n                            <p style=\'margin: 5px 0 0 0; color: #6c757d; font-size: 16px; font-weight: 600;\'>PetroSA</p>\n                        </div>\n                        \n                        <div style=\'margin: 15px 0;\'>\n                            <p style=\'margin: 5px 0; color: #495057;\'><strong>📍 Location:</strong> Mossel Bay</p>\n                            <p style=\'margin: 5px 0; color: #495057;\'><strong>💼 Type:</strong> Full time</p>\n                            <p style=\'margin: 5px 0; color: #495057;\'><strong>🎓 Level:</strong> Senior Level</p>\n                            <p style=\'margin: 5px 0; color: #495057;\'><strong>🏢 Work Style:</strong> Office</p>\n                            <p style=\'margin: 5px 0; color: #495057;\'><strong>🏷️ Category:</strong> Information Technology</p>\n                        </div>\n                        \n                        \n                        \n                        <p style=\"margin: 10px 0; color: #28a745; font-size: 16px; font-weight: 600;\">💰 R170,000 - R330,000 TCTC</p>\n                        \n                        <p style=\'margin: 15px 0 0 0; color: #dc3545; font-weight: 600;\'>⏰ Application deadline: August 10, 2025</p>\n                    </div>\n                    \n                    <!-- Job Description Preview -->\n                    <div style=\'margin: 30px 0;\'>\n                        <h4 style=\'color: #333; margin: 0 0 15px 0; font-size: 18px;\'>Job Overview:</h4>\n                        <div style=\'background-color: #ffffff; padding: 20px; border: 1px solid #dee2e6; border-radius: 8px;\'>\n                            <p style=\'color: #495057; line-height: 1.6; margin: 0;\'>\n                                Purpose: As an I.T. Business Analyst at our Head Office, you\'ll play a pivotal role in driving efficiency and enhancing operations through detailed requirements analysis, process documentation, and implementation of cutting-edge solutions. Your expertise will be instrumental in ensuring that our sys...\n                            </p>\n                        </div>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    <div style=\'text-align: center; margin: 40px 0;\'>\n                        <a href=\'http://localhost/recruitment/job-details.php?id=7\' \n                           style=\'background-color: #007bff; color: white; padding: 15px 30px; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 18px; font-weight: bold; box-shadow: 0 4px 8px rgba(0,123,255,0.3);\'>\n                            🚀 View Job Details & Apply\n                        </a>\n                    </div>\n                    \n                    <!-- Why This Job -->\n                    <div style=\'background-color: #e7f3ff; padding: 20px; border-radius: 8px; margin: 30px 0; border-left: 4px solid #007bff;\'>\n                        <h4 style=\'margin: 0 0 15px 0; color: #0056b3; font-size: 16px;\'>\n                            🎯 Why we think this is perfect for you:\n                        </h4>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #0056b3; line-height: 1.6;\'>\n                            <li>You\'ve previously shown interest in Information Technology positions</li>\n                            <li>This role matches your experience level and career goals</li>\n                            <li>The company is actively looking for candidates with your background</li>\n                        </ul>\n                    </div>\n                    \n                    <!-- Additional Info -->\n                    <div style=\'background-color: #f1f3f4; padding: 20px; border-radius: 8px; margin: 30px 0;\'>\n                        <h4 style=\'margin: 0 0 15px 0; color: #495057; font-size: 16px;\'>\n                            💡 Quick Tips:\n                        </h4>\n                        <ul style=\'margin: 0; padding-left: 20px; color: #495057; line-height: 1.6; font-size: 14px;\'>\n                            <li>Apply early - employers often review applications as they come in</li>\n                            <li>Customize your application to highlight relevant experience</li>\n                            <li>Make sure your profile is up to date</li>\n                            <li><strong>Don\'t wait</strong> - this position has an application deadline</li>\n                        </ul>\n                    </div>\n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 15px 0; color: #6c757d; font-size: 14px;\'>\n                        You received this email because you previously applied for jobs in the Information Technology category.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        <a href=\'http://localhost/recruitment/jobs.php\' style=\'color: #007bff; text-decoration: none;\'>Browse More Jobs</a> | \n                        <a href=\'http://localhost/recruitment/candidate/dashboard.php\' style=\'color: #007bff; text-decoration: none;\'>My Applications</a>\n                    </p>\n                    <p style=\'margin: 15px 0 0 0; color: #6c757d; font-size: 12px;\'>\n                        This is an automated message from Recruitment Portal. Please do not reply to this email.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-08 00:03:01', '2025-09-08 00:03:02');
INSERT INTO `email_notifications` (`id`, `to_email`, `subject`, `message`, `status`, `error_message`, `created_at`, `sent_at`) VALUES
(11, 'odwa@gmail.com', 'Application Status Update - Remote Support Tech', '\n        <!DOCTYPE html>\n        <html>\n        <head>\n            <meta charset=\'UTF-8\'>\n            <meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\'>\n            <title>Application Status Update</title>\n        </head>\n        <body style=\'margin: 0; padding: 0; background-color: #f8f9fa; font-family: Arial, sans-serif;\'>\n            <div style=\'max-width: 600px; margin: 0 auto; background-color: #ffffff;\'>\n                <!-- Header -->\n                <div style=\'background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); color: white; padding: 30px; text-align: center;\'>\n                    <h1 style=\'margin: 0; font-size: 28px; font-weight: bold;\'>Recruitment Portal</h1>\n                    <p style=\'margin: 10px 0 0 0; font-size: 16px; opacity: 0.9;\'>Application Status Update</p>\n                </div>\n                \n                <!-- Content -->\n                <div style=\'padding: 40px 30px;\'>\n                    <!-- Job Info -->\n                    <div style=\'background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 30px; border-left: 4px solid #007bff;\'>\n                        <h2 style=\'margin: 0 0 5px 0; color: #333; font-size: 22px;\'>Remote Support Tech</h2>\n                        <p style=\'margin: 0; color: #666; font-size: 16px;\'>PetroSA</p>\n                    </div>\n                    \n                    <!-- Message -->\n                    <div style=\'margin-bottom: 30px;\'>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6; margin-bottom: 15px;\'>\n                            Dear Odwa,\n                        </p>\n                        <p style=\'color: #333; font-size: 16px; line-height: 1.6;\'>\n                            Your application status for Remote Support Tech at PetroSA has been updated to Longlisted.\n                        </p>\n                    </div>\n                    \n                    <!-- Status Badge -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <span style=\'background-color: #007bff; color: white; padding: 12px 24px; border-radius: 25px; font-size: 16px; font-weight: bold; text-transform: uppercase;\'>\n                            Longlisted\n                        </span>\n                    </div>\n                    \n                    <!-- Call to Action -->\n                    <div style=\'text-align: center; margin: 30px 0;\'>\n                        <a href=\'http://localhost/recruitment/candidate/applications.php\' \n                           style=\'background-color: #007bff; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-size: 16px; font-weight: bold;\'>\n                            View My Applications\n                        </a>\n                    </div>\n                    \n                    <!-- Tips Section -->\n                    <div style=\'background-color: #e9ecef; padding: 20px; border-radius: 8px; margin-top: 30px;\'>\n                        <h3 style=\'margin: 0 0 15px 0; color: #495057; font-size: 18px;\'>\n                            <i style=\'color: #007bff;\'>💡</i> What\'s Next?\n                        </h3>\n                        <p style=\'margin: 0; color: #495057; line-height: 1.6;\'>Stay tuned for updates on your application. We\'ll notify you of any changes to your status.</p>\n                    </div>\n                </div>\n                \n                <!-- Footer -->\n                <div style=\'background-color: #f8f9fa; padding: 30px; text-align: center; border-top: 1px solid #e9ecef;\'>\n                    <p style=\'margin: 0 0 10px 0; color: #6c757d; font-size: 14px;\'>\n                        This is an automated message from Recruitment Portal.\n                    </p>\n                    <p style=\'margin: 0; color: #6c757d; font-size: 12px;\'>\n                        Please do not reply to this email. For support, visit our website.\n                    </p>\n                </div>\n            </div>\n        </body>\n        </html>', 'sent', NULL, '2025-09-08 00:05:31', '2025-09-08 00:05:32');

-- --------------------------------------------------------

--
-- Table structure for table `hr_analytics`
--

CREATE TABLE `hr_analytics` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `metric_type` enum('application_received','interview_scheduled','interview_completed','candidate_hired','candidate_rejected','job_posted','job_closed') NOT NULL,
  `metric_value` int(11) DEFAULT 1,
  `job_id` int(11) DEFAULT NULL,
  `candidate_id` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `created_by` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `hr_analytics`
--

INSERT INTO `hr_analytics` (`id`, `company_id`, `metric_type`, `metric_value`, `job_id`, `candidate_id`, `created_at`, `created_by`) VALUES
(1, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(2, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(3, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(4, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(5, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(6, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(7, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(8, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(9, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(10, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(11, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(12, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(13, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(14, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(15, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(16, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(17, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(18, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(19, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(20, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(21, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(22, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(23, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(24, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(25, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(26, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(27, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(28, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(29, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(30, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(31, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(32, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(33, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(34, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(35, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(36, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(37, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(38, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(39, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(40, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(41, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(42, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(43, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(44, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(45, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(46, 2, 'job_posted', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(47, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(48, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(49, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(50, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(51, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(52, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(53, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(54, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(55, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(56, 2, 'job_posted', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(57, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(58, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(59, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(60, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(61, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(62, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(63, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(64, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(65, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(66, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(67, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(68, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(69, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(70, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(71, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(72, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(73, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(74, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(75, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(76, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(77, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(78, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(79, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(80, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(81, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(82, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(83, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(84, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(85, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(86, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(87, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(88, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(89, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(90, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(91, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(92, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(93, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(94, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(95, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(96, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(97, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(98, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(99, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(100, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(101, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(102, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(103, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(104, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(105, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(106, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(107, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(108, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(109, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(110, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(111, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(112, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(113, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(114, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(115, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(116, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(117, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(118, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(119, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(120, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(121, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(122, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(123, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(124, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(125, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(126, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(127, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(128, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(129, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(130, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(131, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(132, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(133, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(134, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(135, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(136, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(137, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(138, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(139, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(140, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(141, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(142, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(143, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(144, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(145, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(146, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(147, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(148, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(149, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(150, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(151, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(152, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(153, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(154, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(155, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(156, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(157, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(158, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(159, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(160, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(161, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(162, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(163, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(164, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(165, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(166, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(167, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(168, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(169, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(170, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(171, 2, 'job_posted', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(172, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(173, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(174, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(175, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(176, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(177, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(178, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(179, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(180, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(181, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(182, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(183, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(184, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(185, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(186, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(187, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(188, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(189, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(190, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(191, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(192, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(193, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(194, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(195, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(196, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(197, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(198, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(199, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(200, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(201, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(202, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(203, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(204, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(205, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(206, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(207, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(208, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(209, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(210, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(211, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(212, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(213, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(214, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(215, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:46', NULL),
(216, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:46', NULL),
(217, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(218, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(219, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(220, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(221, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(222, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(223, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(224, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(225, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(226, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(227, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(228, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(229, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(230, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(231, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(232, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(233, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(234, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(235, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(236, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(237, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(238, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(239, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(240, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(241, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(242, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(243, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(244, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(245, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(246, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(247, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(248, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(249, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(250, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(251, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(252, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(253, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(254, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(255, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(256, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(257, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(258, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(259, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(260, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(261, 2, 'job_posted', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(262, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(263, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(264, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(265, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(266, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(267, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(268, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(269, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(270, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(271, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(272, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(273, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(274, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(275, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(276, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(277, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(278, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(279, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(280, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(281, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(282, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(283, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(284, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(285, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(286, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(287, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(288, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(289, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(290, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(291, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(292, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(293, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(294, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(295, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(296, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(297, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(298, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(299, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(300, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(301, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(302, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(303, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(304, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(305, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(306, 2, 'job_posted', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(307, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(308, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(309, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(310, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(311, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(312, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(313, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(314, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(315, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(316, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(317, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(318, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(319, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(320, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(321, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(322, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(323, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(324, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(325, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(326, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(327, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(328, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(329, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(330, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(331, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(332, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(333, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(334, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(335, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(336, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(337, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(338, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(339, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(340, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(341, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(342, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(343, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(344, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(345, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(346, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(347, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(348, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(349, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(350, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(351, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(352, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(353, 2, 'candidate_hired', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(354, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(355, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(356, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(357, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(358, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(359, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(360, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(361, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(362, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(363, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(364, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(365, 2, 'job_posted', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(366, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(367, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(368, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(369, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(370, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(371, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(372, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(373, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(374, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(375, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(376, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(377, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(378, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(379, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(380, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(381, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(382, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(383, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(384, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(385, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(386, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(387, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(388, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(389, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(390, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(391, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(392, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(393, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(394, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(395, 2, 'candidate_rejected', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(396, 2, 'candidate_rejected', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(397, 2, 'application_received', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(398, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(399, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(400, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(401, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(402, 2, 'interview_scheduled', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(403, 2, 'candidate_hired', 1, 2, NULL, '2025-08-08 17:49:47', NULL),
(404, 2, 'application_received', 1, 1, NULL, '2025-08-08 17:49:47', NULL),
(405, 2, 'interview_scheduled', 1, 1, NULL, '2025-08-08 17:49:47', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `hr_performance_metrics`
--

CREATE TABLE `hr_performance_metrics` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `metric_name` varchar(100) NOT NULL,
  `metric_value` decimal(10,2) NOT NULL,
  `metric_period` varchar(20) NOT NULL,
  `period_start` date NOT NULL,
  `period_end` date NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `internal_candidates`
--

CREATE TABLE `internal_candidates` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `employee_id` varchar(50) NOT NULL,
  `current_department` varchar(100) NOT NULL,
  `current_position` varchar(100) NOT NULL,
  `desired_position` varchar(100) NOT NULL,
  `reason_for_transfer` text DEFAULT NULL,
  `status` enum('pending','approved','rejected') DEFAULT 'pending',
  `rejection_reason` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `approved_at` timestamp NULL DEFAULT NULL,
  `rejected_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `interviews`
--

CREATE TABLE `interviews` (
  `id` int(11) NOT NULL,
  `application_id` int(11) NOT NULL,
  `interview_date` datetime NOT NULL,
  `interview_type` enum('phone','video','in-person') DEFAULT 'video',
  `location` varchar(255) DEFAULT NULL,
  `interviewer_name` varchar(100) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `status` enum('scheduled','completed','cancelled','rescheduled') DEFAULT 'scheduled',
  `result` enum('passed','failed','pending') DEFAULT 'pending',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `jobs`
--

CREATE TABLE `jobs` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `job_type` enum('internal','external','both') DEFAULT 'both',
  `company_user_id` int(11) DEFAULT 1,
  `category_id` int(11) DEFAULT NULL,
  `title` varchar(100) NOT NULL,
  `description` text NOT NULL,
  `requirements` text DEFAULT NULL,
  `salary_min` decimal(10,2) DEFAULT NULL,
  `salary_max` decimal(10,2) DEFAULT NULL,
  `location` varchar(100) DEFAULT NULL,
  `work_location_type` enum('office','remote','hybrid') DEFAULT 'office',
  `employment_type` enum('full-time','part-time','contract','internship') DEFAULT NULL,
  `experience_level` enum('entry','mid','senior','executive') DEFAULT NULL,
  `deadline` date DEFAULT NULL,
  `status` enum('active','closed','draft') DEFAULT 'active',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `jobs`
--

INSERT INTO `jobs` (`id`, `company_id`, `job_type`, `company_user_id`, `category_id`, `title`, `description`, `requirements`, `salary_min`, `salary_max`, `location`, `work_location_type`, `employment_type`, `experience_level`, `deadline`, `status`, `created_at`, `updated_at`) VALUES
(1, 2, 'both', 3, 1, 'Senior IT Desktop Support Engineer (Level 2 - Level 3)', 'Scaled Inc is a leading staff augmentation firm connecting USA-based Managed Service Providers (MSPs) with top-tier South African technical talent. Renowned for exceptional technical expertise and outstanding service, we are on a mission to expand our footprint and strengthen our team with passionate professionals.\r\n\r\nRole Overview:\r\n\r\nWe are seeking a skilled and motivated Senior Desktop Support Engineer with a robust background in Office 365, Desktop Support, Cloud-based Infrastructure, and Virtualization. This role requires working in a fully remote environment, equipped with a professional home office setup.\r\n\r\nKey Responsibilities:\r\n\r\nOffice 365 Expertise:\r\nConfigure, manage, and troubleshoot Office 365 applications (Exchange Online, SharePoint Online, Teams).\r\nDesktop Support:\r\nProvide technical support to end-users, including software installations, hardware issue resolution, and general troubleshooting.\r\nWindows Server Administration:\r\nManage Active Directory, Group Policy, DNS, and associated server tasks.\r\nSystem Performance &amp;amp;amp;amp; Security:\r\nMonitor systems, ensure security measures are in place, and maintain IT infrastructure availability.\r\nIT Projects:\r\nCollaborate with the IT team to implement and support various projects and initiatives.\r\nDocumentation:\r\nMaintain comprehensive documentation for IT processes, procedures, and system configurations.nding service, we are on a mission to expand our footprint and strengthen our team with passionate professionals.', 'Minimum 5 years in IT support roles focusing on Office 365, Azure, desktop support, and server administration.\r\nExpertise in Azure services, including Azure Active Directory, Virtual Machines, and Storage.\r\nProficiency in supporting Windows/macOS systems, hardware troubleshooting, and software installations.\r\nStrong familiarity with Windows Server environments (Active Directory, Group Policy, DNS).\r\n\r\nHome Office Setup:\r\n\r\nDedicated workspace (separate room).\r\nMinimum internet speed: 40 Mbps (Fibre preferred)\r\nBackup power supply.\r\nPreferred Certifications:\r\n\r\nMicrosoft: MCSE Certification.\r\nNetworking &amp;amp;amp;amp; Security: Cisco, HP Advanced, Fortinet, Palo Alto, Meraki, Juniper.\r\nCloud: Azure Certified, VMware Certified.\r\nCybersecurity: SANS, GIAC, Security Infrastructure/Management (Splunk, Arctic Wolf, Tenable).', 5000.00, 20000.00, 'Cape Town', 'office', 'full-time', 'mid', '2025-08-09', 'closed', '2025-08-03 16:53:51', '2025-09-03 19:21:18'),
(2, 2, 'both', 3, 4, 'Administrative Controller', 'Provide administrative support to the Production Team enabling the efficient and effective delivery of a Learning and Development Service to the business.', '• Diploma/Degree\r\n• 3 - 5 years relevant experience working in similar environment, applying job-related concepts, techniques and processes at the required level\r\n• Business English: Fluent\r\n• Computer lite..', 45000.00, 75000.00, 'Cape Town', 'office', 'full-time', 'mid', '2025-09-30', 'active', '2025-08-04 10:31:08', '2025-08-04 10:31:08'),
(7, 2, 'both', 3, 1, 'IT Business Analyst', 'Purpose: As an I.T. Business Analyst at our Head Office, you\'ll play a pivotal role in driving efficiency and enhancing operations through detailed requirements analysis, process documentation, and implementation of cutting-edge solutions. Your expertise will be instrumental in ensuring that our systems and processes are optimized to meet the evolving needs of our business.', 'Minimum Requirements:\r\n• Qualifications in I.T. or Business Analysis (Diploma or Degree preferred).\r\n• 2 – 3 years’ relevant experience\r\n• Strong analytical skills and proficiency in Microsoft Office Applications.\r\n• Excellent written and oral communication skills.\r\n• Ability to thrive in high-pressure situations and adapt quickly.\r\n• Proficient in data analysis and understanding of business functional areas.\r\n• Willingness to travel to sites when required.\r\n• Strong planning, organizational, and time management skills.\r\n• Previous experience in I.T. or Business Analysis is advantageous.\r\n• Valid driver\'s license.\r\n\r\nDuties and Responsibilities\r\n\r\nDuties and Responsibilities:\r\n• Evaluating business processes, anticipating requirements, uncovering areas for improvement, and developing and implementing solutions.\r\n• Leading ongoing reviews of business processes and developing optimization strategies.\r\n• Staying up-to-date on the latest process and IT advancements to automate and modernize systems.\r\n• Conducting meetings and presentations to share ideas and findings.\r\n• Performing requirements analysis.\r\n• Documenting and communicating the results of your efforts.\r\n• Effectively communicating your insights and plans to cross-functional team members and management.\r\n• Gathering critical information from meetings with various stakeholders and producing useful reports.\r\n• Working closely with clients, technicians, and managerial staff.\r\n• Ensuring solutions meet business needs and requirements.\r\n• Performing user acceptance testing.\r\n• Managing projects, developing project plans, monitoring performance, change management and support handovers.\r\n• The ability to present findings and recommendations to senior leaders and to manage stakeholder meetings\r\n• Requirement gathering is a key part of the role so the ability to ask the right questions and correctly understand the information received is essential\r\n• Documentation of Functional business requirements', 170000.00, 330000.00, 'Mossel Bay', 'office', 'full-time', 'senior', '2025-08-10', 'active', '2025-08-09 20:28:29', '2025-08-09 20:29:17'),
(8, 2, 'both', 3, 2, 'Communication Specialist', 'Icebolethu is calling for suitable candidates to apply for the permanent position of a Communication Specialist for our Internal and external communication from the Business. The Communication Specialist is responsible for developing and executing internal and external communication strategies that support the overall marketing objectives of the Icebolethu Group. The role includes content development, copywriting, stakeholder engagement, and managing internal communication platforms. It also supports HR administrative functions and acts as the Risk Champion for the marketing department. Please note that this is both an Internal and external advert, thus applies to all staff and external possible candidates.', 'Marketing and Communication Support:\r\n• Collaborate with the Marketing Manager to develop and implement comprehensive marketing strategies.\r\n• Coordinate marketing campaigns across various channels and ensure brand consistency.\r\n• Conduct market research and analyze trends to inform marketing decisions.\r\n• Assist in the creation of marketing materials, reports and monitor campaign performance metrics.\r\n\r\nOperational Administration (HR) Support:\r\n• Manage HR administrative tasks, including recruitment, onboarding, and performance evaluations of the team.\r\n• Maintain employee records and ensure compliance with company policies.\r\n• Serve as a point of contact for HR inquiries and support team members as needed.\r\n• Implement HR policies and initiatives within the marketing team.\r\n\r\nRisk Champion:\r\n• Oversee and update Risk register for marketing.\r\n• Socialise with the team and report back to Risk\r\n• Serve as a point of contact for Risk queries\r\n\r\nTeam Oversight:\r\n• Supervise the day-to-day activities of the marketing team and delegate tasks accordingly.\r\n• Foster a collaborative team environment and provide guidance to team members.\r\n• Conduct regular team meetings to discuss goals and priorities.\r\n• Support team members&#039; professional development and career growth\r\n\r\nInternal coms and Copywrite\r\n\r\nInternal:\r\n• Write and edit content for internal purposes e.g. Memos, circulars, company profiles, website copy, etc.\r\n• Work closely with and collaborate with all aspects of marketing, digital, events, etc.\r\n• Proofreading of social media posts, posters and official marketing related documents.\r\n• Produce a quarterly internal newsletter\r\n• Produce a quarterly internal newsletter and coordinate internal webinars (i-Connect) with CEO, leadership to staff.\r\n• Develop relationships with internal stakeholders - HR, FSP, Fleet, Catering, etc\r\n• Internal communications content plan and implementation\r\n• Ensure that correct internal stakeholders are updated on key company programmes.\r\n\r\nExternal:\r\n• Draft and edit press releases, presentations and emailers\r\n• Build a content plan for external newsletters to customer base.\r\n• Apply plain language principles for clear, customer- facing communication\r\n• Ensure that necessary IG content is translated to relevant languages.\r\n• Maintain relationships with external stakeholders and ensure updates on IG related activities', 155000.00, 255000.00, 'Cape Town', 'office', 'full-time', 'senior', '2025-08-10', 'active', '2025-08-09 22:16:23', '2025-08-09 22:16:23'),
(9, 2, 'internal', 3, 1, 'Remote Support Tech', 'We’re building the future with robotics. Our work is in integrating robotics and automation into industries like construction and mining. If you’re passionate about cutting-edge technology, solving complex problems, and building systems that push the limits of what is possible in robotics and automation, here is where your skills can make a global impact.\r\nJob Specification\r\n\r\nWe are a US based company with strong South African roots. Our business started in Joburg in 2005 and later moved to the USA. We are now building out our engineering office’s in Cape Town (Century City) and Joburg (Greenstone Hill) to support our US operations and customers.', 'Key Responsibilities\r\n• 1st and 2nd level support for remote mining and construction customers.\r\n• Network support and monitoring\r\n• Remote server support and monitoring\r\n• Routine maintenance on remote systems\r\n• Telephone, email and chat support for industrial users\r\n• Reporting\r\n• Escalation to 3rd level support\r\n• Escalation to OEM support, where available\r\nSkills &amp; Qualifications\r\n• IT, Network certification or Degree.\r\n• 1+ years experience', 25000.00, 30000.00, 'Cape Town', 'hybrid', 'full-time', 'senior', '2025-09-10', 'active', '2025-09-03 17:40:52', '2025-09-03 17:40:52');

-- --------------------------------------------------------

--
-- Table structure for table `job_applications`
--

CREATE TABLE `job_applications` (
  `id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `resume_id` int(11) DEFAULT NULL,
  `cover_letter` text DEFAULT NULL,
  `status` enum('applied','longlisted','shortlisted','interviewed','hired','rejected') DEFAULT 'applied',
  `applied_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_applications`
--

INSERT INTO `job_applications` (`id`, `job_id`, `candidate_id`, `resume_id`, `cover_letter`, `status`, `applied_at`, `updated_at`) VALUES
(1, 9, 11, 4, 'test letter', 'longlisted', '2025-09-07 23:46:33', '2025-09-08 00:05:31');

-- --------------------------------------------------------

--
-- Table structure for table `job_application_survey_responses`
--

CREATE TABLE `job_application_survey_responses` (
  `id` int(11) NOT NULL,
  `application_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `response` text NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_application_survey_responses`
--

INSERT INTO `job_application_survey_responses` (`id`, `application_id`, `question_id`, `response`, `created_at`) VALUES
(1, 1, 11, 'Masters Degree', '2025-09-07 23:46:33');

-- --------------------------------------------------------

--
-- Table structure for table `job_benefits`
--

CREATE TABLE `job_benefits` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `icon` varchar(50) DEFAULT 'fas fa-check',
  `description` text DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT 1,
  `display_order` int(11) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_benefits`
--

INSERT INTO `job_benefits` (`id`, `name`, `icon`, `description`, `is_active`, `display_order`, `created_at`) VALUES
(1, 'Health Insurance', 'fas fa-heartbeat', 'Comprehensive medical coverage including dental and vision', 1, 1, '2025-09-03 17:29:03'),
(2, 'Dental Insurance', 'fas fa-tooth', 'Full dental coverage including preventive and major services', 1, 2, '2025-09-03 17:29:03'),
(3, 'Vision Insurance', 'fas fa-eye', 'Eye care coverage including exams and prescription glasses', 1, 3, '2025-09-03 17:29:03'),
(4, 'Life Insurance', 'fas fa-shield-alt', 'Life insurance coverage for employees', 1, 4, '2025-09-03 17:29:03'),
(5, 'Retirement Plan', 'fas fa-piggy-bank', 'Company retirement savings plan with matching', 1, 5, '2025-09-03 17:29:03'),
(6, 'Paid Time Off', 'fas fa-calendar-alt', 'Generous paid vacation and personal days', 1, 6, '2025-09-03 17:29:03'),
(7, 'Sick Leave', 'fas fa-user-md', 'Paid sick leave for health-related absences', 1, 7, '2025-09-03 17:29:03'),
(8, 'Flexible Schedule', 'fas fa-clock', 'Flexible working hours and schedule options', 1, 8, '2025-09-03 17:29:03'),
(9, 'Professional Development', 'fas fa-graduation-cap', 'Training opportunities and skill development programs', 1, 9, '2025-09-03 17:29:03'),
(10, 'Tuition Reimbursement', 'fas fa-university', 'Financial assistance for continuing education', 1, 10, '2025-09-03 17:29:03'),
(11, 'Gym Membership', 'fas fa-dumbbell', 'Company-paid or subsidized fitness center membership', 1, 11, '2025-09-03 17:29:03'),
(12, 'Free Parking', 'fas fa-parking', 'Complimentary parking at the workplace', 1, 12, '2025-09-03 17:29:03'),
(13, 'Transportation Allowance', 'fas fa-bus', 'Stipend for public transportation or commuting', 1, 13, '2025-09-03 17:29:03'),
(14, 'Meal Allowance', 'fas fa-utensils', 'Daily meal stipend or subsidized cafeteria', 1, 14, '2025-09-03 17:29:03'),
(15, 'Performance Bonus', 'fas fa-trophy', 'Annual or quarterly performance-based bonuses', 1, 15, '2025-09-03 17:29:03'),
(16, 'Stock Options', 'fas fa-chart-line', 'Employee stock ownership opportunities', 1, 16, '2025-09-03 17:29:03'),
(17, 'Maternity/Paternity Leave', 'fas fa-baby', 'Extended paid leave for new parents', 1, 17, '2025-09-03 17:29:03'),
(18, 'Childcare Support', 'fas fa-child', 'Childcare assistance or on-site daycare', 1, 18, '2025-09-03 17:29:03'),
(19, 'Employee Discounts', 'fas fa-percent', 'Discounts on company products and services', 1, 19, '2025-09-03 17:29:03'),
(20, 'Team Building Events', 'fas fa-users', 'Company-sponsored team activities and events', 1, 20, '2025-09-03 17:29:03'),
(21, 'Work from Home', 'fas fa-home', 'Remote work opportunities and equipment provided', 1, 21, '2025-09-03 17:29:03'),
(22, 'Company Phone', 'fas fa-mobile-alt', 'Company-provided mobile phone and plan', 1, 22, '2025-09-03 17:29:03'),
(23, 'Company Laptop', 'fas fa-laptop', 'Company-provided laptop and equipment', 1, 23, '2025-09-03 17:29:03'),
(24, 'Conference Attendance', 'fas fa-microphone', 'Sponsorship for industry conferences and events', 1, 24, '2025-09-03 17:29:03');

-- --------------------------------------------------------

--
-- Table structure for table `job_benefit_selections`
--

CREATE TABLE `job_benefit_selections` (
  `id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `benefit_id` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_benefit_selections`
--

INSERT INTO `job_benefit_selections` (`id`, `job_id`, `benefit_id`, `created_at`) VALUES
(1, 9, 4, '2025-09-03 17:40:52'),
(2, 9, 7, '2025-09-03 17:40:52'),
(3, 9, 17, '2025-09-03 17:40:52'),
(4, 9, 21, '2025-09-03 17:40:52'),
(5, 9, 23, '2025-09-03 17:40:52');

-- --------------------------------------------------------

--
-- Table structure for table `job_categories`
--

CREATE TABLE `job_categories` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_categories`
--

INSERT INTO `job_categories` (`id`, `name`, `description`, `created_at`) VALUES
(1, 'Information Technology', 'Software development, IT support, cybersecurity', '2025-08-03 13:06:53'),
(2, 'Marketing', 'Digital marketing, content creation, brand management', '2025-08-03 13:06:53'),
(3, 'Finance', 'Accounting, financial analysis, banking', '2025-08-03 13:06:53'),
(4, 'Human Resources', 'Recruitment, employee relations, training', '2025-08-03 13:06:53'),
(5, 'Sales', 'Business development, account management, retail', '2025-08-03 13:06:53'),
(6, 'Engineering', 'Mechanical, electrical, civil engineering', '2025-08-03 13:06:53'),
(7, 'Healthcare', 'Medical, nursing, pharmacy', '2025-08-03 13:06:53'),
(8, 'Education', 'Teaching, training, academic research', '2025-08-03 13:06:53');

-- --------------------------------------------------------

--
-- Table structure for table `job_survey_questions`
--

CREATE TABLE `job_survey_questions` (
  `id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `question` text NOT NULL,
  `question_type` enum('text','textarea','select','radio','checkbox') DEFAULT 'text',
  `options` text DEFAULT NULL,
  `is_required` tinyint(1) DEFAULT 1,
  `weight` decimal(5,2) NOT NULL DEFAULT 0.00,
  `question_order` int(11) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `job_survey_questions`
--

INSERT INTO `job_survey_questions` (`id`, `job_id`, `question`, `question_type`, `options`, `is_required`, `weight`, `question_order`, `created_at`) VALUES
(4, 2, 'Have a Degree plus MBA', 'select', '[\"Degree\",\"Degree Plus postgraduate\",\"No Degree\"]', 1, 50.00, 1, '2025-08-04 10:31:08'),
(5, 2, '10 years or more management experience', 'select', '[\"Yes\",\"No\"]', 1, 50.00, 2, '2025-08-04 10:31:08'),
(8, 7, 'What is your highest qualification', 'text', '', 1, 50.00, 1, '2025-08-09 20:29:17'),
(9, 7, 'How many years do have in a senior IT position', 'text', '', 1, 50.00, 2, '2025-08-09 20:29:17'),
(10, 1, 'Highest Qualification', 'select', '[\"Degree\",\"Diploma\",\"Certificate\"]', 1, 100.00, 1, '2025-08-09 22:02:23'),
(11, 9, 'Highest Qualification', 'select', '[\"Certificate\",\"Diploma\",\"Degree\",\"Masters Degree\",\"Doctorate Degree\"]', 1, 100.00, 1, '2025-09-03 17:40:52');

-- --------------------------------------------------------

--
-- Table structure for table `notifications`
--

CREATE TABLE `notifications` (
  `id` int(11) NOT NULL,
  `user_type` enum('admin','company','candidate') NOT NULL,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `type` enum('info','success','warning','error') DEFAULT 'info',
  `related_type` varchar(50) DEFAULT 'general',
  `related_id` int(11) DEFAULT NULL,
  `is_read` tinyint(1) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `notifications`
--

INSERT INTO `notifications` (`id`, `user_type`, `user_id`, `title`, `message`, `type`, `related_type`, `related_id`, `is_read`, `created_at`) VALUES
(1, 'candidate', 1, 'Great News! You\'ve Been Shortlisted - Senior IT Desktop Support Engineer (Level 2 - Level 3)', 'Congratulations! Your application for Senior IT Desktop Support Engineer (Level 2 - Level 3) at PetroSA has been shortlisted. The hiring team will be in touch soon.', 'success', 'application', 1, 0, '2025-09-07 20:33:14'),
(2, 'candidate', 11, 'Internal Transfer Application Approved - PetroSA', 'Great news! Your internal transfer application at PetroSA has been approved. You can now access your candidate portal and apply for internal positions.', 'success', 'internal_approval', 11, 0, '2025-09-07 20:33:17'),
(3, 'candidate', 11, 'Internal Transfer Application - PetroSA', 'Your internal transfer application at PetroSA has been reviewed. Please contact HR for more information.', 'warning', 'internal_approval', 11, 0, '2025-09-07 20:33:20'),
(4, 'candidate', 1, 'Great News! You\'ve Been Shortlisted - Senior IT Desktop Support Engineer (Level 2 - Level 3)', 'Congratulations! Your application for Senior IT Desktop Support Engineer (Level 2 - Level 3) at PetroSA has been shortlisted. The hiring team will be in touch soon.', 'success', 'application', 1, 0, '2025-09-07 20:43:50'),
(5, 'candidate', 11, 'Internal Transfer Application Approved - SANPC', 'Great news! Your internal transfer application at SANPC has been approved. You can now access your candidate portal and apply for internal positions.', 'success', 'internal_approval', 11, 0, '2025-09-07 20:43:51'),
(6, 'candidate', 11, 'Internal Transfer Application - SANPC', 'Your internal transfer application at SANPC has been reviewed. Please contact HR for more information.', 'warning', 'internal_approval', 11, 0, '2025-09-07 20:43:51'),
(7, 'candidate', 13, 'Internal Transfer Application Approved - SANPC', 'Great news! Your internal transfer application at SANPC has been approved. You can now access your candidate portal and apply for internal positions.', 'success', 'internal_approval', 13, 0, '2025-09-07 20:53:07'),
(8, 'candidate', 11, 'Employment Status Update - SANPC', 'Your employment status has been temporarily changed to inactive. You will not receive internal job notifications during this period. Please contact HR for more information.', 'warning', 'employment_status', 11, 0, '2025-09-07 21:23:57'),
(9, 'candidate', 11, 'New Job Opportunity: IT Business Analyst at PetroSA', 'A new Information Technology position has been posted that might interest you based on your previous applications.', 'info', 'new_job', 7, 0, '2025-09-08 00:03:01'),
(10, 'candidate', 11, 'Application Status Update - Remote Support Tech', 'Your application status for Remote Support Tech at PetroSA has been updated to Longlisted.', 'info', 'application', 1, 0, '2025-09-08 00:05:31');

-- --------------------------------------------------------

--
-- Table structure for table `rate_limits`
--

CREATE TABLE `rate_limits` (
  `id` int(11) NOT NULL,
  `identifier` varchar(255) NOT NULL,
  `action` varchar(50) NOT NULL DEFAULT 'login',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `recruitment_funnel`
--

CREATE TABLE `recruitment_funnel` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `stage` enum('posted','applications','screening','interview','offer','hired','rejected') NOT NULL,
  `candidate_count` int(11) NOT NULL DEFAULT 0,
  `stage_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `resumes`
--

CREATE TABLE `resumes` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `title` varchar(100) DEFAULT NULL,
  `summary` text DEFAULT NULL,
  `skills` text DEFAULT NULL,
  `file_path` varchar(255) DEFAULT NULL,
  `is_primary` tinyint(1) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `document_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `resumes`
--

INSERT INTO `resumes` (`id`, `candidate_id`, `title`, `summary`, `skills`, `file_path`, `is_primary`, `created_at`, `updated_at`, `document_id`) VALUES
(1, 1, 'Masande Ndyaluvane Resume', 'I am a multi-skilled IT professional with over 15 years’ experience spanning the private sector, oil &amp; gas industry, provincial government, and local government. Demonstrated expertise in ICT governance, cloud computing, Microsoft technologies, and large-scale ICT project management. Adept at developing IT and business strategies, leading cross-functional teams, and delivering innovative solutions that improve service delivery. Strong background in MFMA and PFMA, risk management, strategy development, and IT service management. Recognized for analytical thinking, excellent communication, and driving operational excellence.', 'Microsoft Cloud (Azure, Office 365, SharePoint)   ICT Governance &amp; Strategy Development\r\n  IT Security &amp; Risk Management   IT Service Management             Project Management\r\n  Data Center Management &amp; Disaster Recovery   Budget Management (MFMA &amp; PFMA)\r\n  Software &amp; App Development\r\n   Business Intelligence &amp; Data Analysis\r\n  IT Audit management and recommendation  Policy Development &amp; Compliance\r\n   SAGE 300 &amp; SAGE People', NULL, 0, '2025-08-03 17:29:17', '2025-08-03 17:29:22', NULL),
(2, 1, 'Masande Ndyaluvane Resume', 'I am a multi-skilled IT professional with over 15 years’ experience spanning the private sector, oil &amp; gas industry, provincial government, and local government. Demonstrated expertise in ICT governance, cloud computing, Microsoft technologies, and large-scale ICT project management. Adept at developing IT and business strategies, leading cross-functional teams, and delivering innovative solutions that improve service delivery. Strong background in MFMA and PFMA, risk management, strategy development, and IT service management. Recognized for analytical thinking, excellent communication, and driving operational excellence.', 'Microsoft Cloud (Azure, Office 365, SharePoint)   ICT Governance &amp; Strategy Development\r\n  IT Security &amp; Risk Management   IT Service Management             Project Management\r\n  Data Center Management &amp; Disaster Recovery   Budget Management (MFMA &amp; PFMA)\r\n  Software &amp; App Development\r\n   Business Intelligence &amp; Data Analysis\r\n  IT Audit management and recommendation  Policy Development &amp; Compliance\r\n   SAGE 300 &amp; SAGE People', NULL, 1, '2025-08-03 17:29:22', '2025-08-03 17:29:22', NULL),
(3, 11, 'main resume', 'I am a multi-skilled IT professional with over 15 years’ experience spanning the private sector, oil &amp; gas industry, provincial government, and local government. Demonstrated expertise in ICT governance, cloud computing, Microsoft technologies, and large-scale ICT project management. Adept at developing IT and business strategies, leading cross-functional teams, and delivering innovative solutions that improve service delivery. Strong background in MFMA and PFMA, risk management, strategy development, and IT service management. Recognized for analytical thinking, excellent communication, and driving operational excellence.', 'Corporate governance of ICT \r\n  IT Security\r\n  Strategy Formulation\r\n  DevOps Implementation\r\n  Software Development\r\n  IT Management\r\n  Business Analysis\r\n  IT Leadership\r\n  Programming \r\n  Budgeting', NULL, 0, '2025-09-03 13:24:56', '2025-09-03 13:24:59', NULL),
(4, 11, 'main resume', 'I am a multi-skilled IT professional with over 15 years’ experience spanning the private sector, oil &amp; gas industry, provincial government, and local government. Demonstrated expertise in ICT governance, cloud computing, Microsoft technologies, and large-scale ICT project management. Adept at developing IT and business strategies, leading cross-functional teams, and delivering innovative solutions that improve service delivery. Strong background in MFMA and PFMA, risk management, strategy development, and IT service management. Recognized for analytical thinking, excellent communication, and driving operational excellence.', 'Corporate governance of ICT \r\n  IT Security\r\n  Strategy Formulation\r\n  DevOps Implementation\r\n  Software Development\r\n  IT Management\r\n  Business Analysis\r\n  IT Leadership\r\n  Programming \r\n  Budgeting', NULL, 1, '2025-09-03 13:24:59', '2025-09-03 13:24:59', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `source_effectiveness`
--

CREATE TABLE `source_effectiveness` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `source_name` varchar(100) NOT NULL,
  `applications_count` int(11) DEFAULT 0,
  `hires_count` int(11) DEFAULT 0,
  `period_start` date NOT NULL,
  `period_end` date NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `source_effectiveness`
--

INSERT INTO `source_effectiveness` (`id`, `company_id`, `source_name`, `applications_count`, `hires_count`, `period_start`, `period_end`, `created_at`) VALUES
(1, 2, 'website', 33, 10, '2025-07-09', '2025-08-08', '2025-08-08 17:49:47'),
(2, 2, 'linkedin', 70, 8, '2025-07-09', '2025-08-08', '2025-08-08 17:49:47'),
(3, 2, 'referral', 59, 4, '2025-07-09', '2025-08-08', '2025-08-08 17:49:47'),
(4, 2, 'job_boards', 96, 7, '2025-07-09', '2025-08-08', '2025-08-08 17:49:47'),
(5, 2, 'social_media', 28, 4, '2025-07-09', '2025-08-08', '2025-08-08 17:49:47');

-- --------------------------------------------------------

--
-- Table structure for table `time_to_hire`
--

CREATE TABLE `time_to_hire` (
  `id` int(11) NOT NULL,
  `company_id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `application_date` date NOT NULL,
  `hire_date` date NOT NULL,
  `days_to_hire` int(11) GENERATED ALWAYS AS (to_days(`hire_date`) - to_days(`application_date`)) STORED,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `time_to_hire`
--

INSERT INTO `time_to_hire` (`id`, `company_id`, `job_id`, `candidate_id`, `application_date`, `hire_date`, `created_at`) VALUES
(1, 2, 2, 1, '2025-05-02', '2025-05-10', '2025-08-08 17:49:46'),
(2, 2, 2, 1, '2025-04-21', '2025-05-13', '2025-08-08 17:49:46'),
(3, 2, 1, 1, '2025-04-04', '2025-05-14', '2025-08-08 17:49:46'),
(4, 2, 2, 1, '2025-04-04', '2025-05-15', '2025-08-08 17:49:46'),
(5, 2, 1, 1, '2025-05-07', '2025-05-27', '2025-08-08 17:49:46'),
(6, 2, 1, 1, '2025-05-13', '2025-06-01', '2025-08-08 17:49:46'),
(7, 2, 2, 1, '2025-05-20', '2025-06-05', '2025-08-08 17:49:46'),
(8, 2, 1, 1, '2025-05-19', '2025-06-11', '2025-08-08 17:49:46'),
(9, 2, 1, 1, '2025-05-07', '2025-06-21', '2025-08-08 17:49:46'),
(10, 2, 2, 1, '2025-05-20', '2025-06-22', '2025-08-08 17:49:46'),
(11, 2, 1, 1, '2025-06-11', '2025-06-26', '2025-08-08 17:49:46'),
(12, 2, 2, 1, '2025-06-01', '2025-07-01', '2025-08-08 17:49:47'),
(13, 2, 1, 1, '2025-06-24', '2025-07-04', '2025-08-08 17:49:47'),
(14, 2, 2, 1, '2025-06-28', '2025-07-05', '2025-08-08 17:49:47'),
(15, 2, 1, 1, '2025-06-06', '2025-07-08', '2025-08-08 17:49:47'),
(16, 2, 1, 1, '2025-06-01', '2025-07-10', '2025-08-08 17:49:47'),
(17, 2, 1, 1, '2025-06-09', '2025-07-11', '2025-08-08 17:49:47'),
(18, 2, 2, 1, '2025-07-09', '2025-07-20', '2025-08-08 17:49:47'),
(19, 2, 2, 1, '2025-07-01', '2025-07-24', '2025-08-08 17:49:47'),
(20, 2, 1, 1, '2025-07-03', '2025-07-26', '2025-08-08 17:49:47'),
(21, 2, 1, 1, '2025-06-23', '2025-07-29', '2025-08-08 17:49:47'),
(22, 2, 2, 1, '2025-06-23', '2025-08-01', '2025-08-08 17:49:47'),
(23, 2, 2, 1, '2025-07-14', '2025-08-06', '2025-08-08 17:49:47');

-- --------------------------------------------------------

--
-- Table structure for table `work_experience`
--

CREATE TABLE `work_experience` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `company_name` varchar(100) NOT NULL,
  `position` varchar(100) NOT NULL,
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `is_current` tinyint(1) DEFAULT 0,
  `description` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `work_experience`
--

INSERT INTO `work_experience` (`id`, `candidate_id`, `company_name`, `position`, `start_date`, `end_date`, `is_current`, `description`, `created_at`) VALUES
(1, 1, 'Walter Sisulu University', 'Software Developer', '2009-01-05', '2013-01-31', 0, 'Manage development of software solutions, cloud servers, ICT policies, and Business Intelligence systems.\r\nLead software applications projects including institutional website, student portal, online results, and ITS reporting (ERP system).', '2025-08-03 17:48:12'),
(2, 1, 'KSD Municipality', 'System Administrator', '2013-02-01', '2013-06-30', 0, 'Manage application servers environment, Software Applications backups, disaster recovery, Service Level Agreements.\r\nManage software applications user access and daily operations.', '2025-08-03 17:49:42'),
(3, 1, 'Office of the Premier EC', 'Provincial Software &amp; Applications Developer', '2013-07-01', NULL, 1, 'Manage provincial hosting environment, Business Analysis and service level agreements.\r\n Develop software applications for provincial departments.\r\nDevelop provincial Applications enterprise architecture.', '2025-08-03 17:52:37'),
(4, 11, 'Buffalo City Metro Municipality', 'System Administrator', '2025-09-01', NULL, 1, '', '2025-09-03 13:26:50');

-- --------------------------------------------------------

--
-- Table structure for table `work_references`
--

CREATE TABLE `work_references` (
  `id` int(11) NOT NULL,
  `candidate_id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `position` varchar(100) DEFAULT NULL,
  `company` varchar(100) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `relationship` varchar(100) DEFAULT NULL,
  `years_known` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `work_references`
--

INSERT INTO `work_references` (`id`, `candidate_id`, `name`, `position`, `company`, `email`, `phone`, `relationship`, `years_known`, `created_at`) VALUES
(1, 1, 'Jongikhaya Stuurman', 'CIO', 'Petrosa', 'jongikhaya.stuurman@petrosa.co.za', '0739781234', 'CIO', 7, '2025-08-03 17:54:18'),
(2, 11, 'Masande Ndyaluvane', '', 'PetroSA', 'masandendyaluvane@gmail.com', '0726130918', 'Manager Business Applications', 4, '2025-09-03 13:26:21');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `admins`
--
ALTER TABLE `admins`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD UNIQUE KEY `email` (`email`);

--
-- Indexes for table `audit_trail`
--
ALTER TABLE `audit_trail`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_user_type_created` (`user_type`,`created_at`),
  ADD KEY `idx_email_created` (`email`,`created_at`),
  ADD KEY `idx_status_created` (`status`,`created_at`),
  ADD KEY `idx_ip_created` (`ip_address`,`created_at`);

--
-- Indexes for table `candidates`
--
ALTER TABLE `candidates`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`),
  ADD KEY `idx_candidate_type` (`candidate_type`),
  ADD KEY `idx_company_approval` (`company_id`,`approval_status`),
  ADD KEY `approved_by` (`approved_by`),
  ADD KEY `idx_nationality` (`nationality`),
  ADD KEY `deactivated_by` (`deactivated_by`);

--
-- Indexes for table `candidate_documents`
--
ALTER TABLE `candidate_documents`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`);

--
-- Indexes for table `certificates`
--
ALTER TABLE `certificates`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`);

--
-- Indexes for table `companies`
--
ALTER TABLE `companies`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);

--
-- Indexes for table `company_users`
--
ALTER TABLE `company_users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`),
  ADD KEY `company_id` (`company_id`);

--
-- Indexes for table `education`
--
ALTER TABLE `education`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`);

--
-- Indexes for table `email_notifications`
--
ALTER TABLE `email_notifications`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `hr_analytics`
--
ALTER TABLE `hr_analytics`
  ADD PRIMARY KEY (`id`),
  ADD KEY `job_id` (`job_id`),
  ADD KEY `candidate_id` (`candidate_id`),
  ADD KEY `idx_company_metric` (`company_id`,`metric_type`),
  ADD KEY `idx_created_at` (`created_at`);

--
-- Indexes for table `hr_performance_metrics`
--
ALTER TABLE `hr_performance_metrics`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_company_period` (`company_id`,`metric_period`,`period_start`);

--
-- Indexes for table `internal_candidates`
--
ALTER TABLE `internal_candidates`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_company_status` (`company_id`,`status`),
  ADD KEY `idx_candidate_company` (`candidate_id`,`company_id`);

--
-- Indexes for table `interviews`
--
ALTER TABLE `interviews`
  ADD PRIMARY KEY (`id`),
  ADD KEY `application_id` (`application_id`);

--
-- Indexes for table `jobs`
--
ALTER TABLE `jobs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `company_id` (`company_id`),
  ADD KEY `category_id` (`category_id`),
  ADD KEY `company_user_id` (`company_user_id`),
  ADD KEY `idx_job_type` (`job_type`),
  ADD KEY `idx_work_location_type` (`work_location_type`);

--
-- Indexes for table `job_applications`
--
ALTER TABLE `job_applications`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_application` (`job_id`,`candidate_id`),
  ADD KEY `candidate_id` (`candidate_id`),
  ADD KEY `resume_id` (`resume_id`);

--
-- Indexes for table `job_application_survey_responses`
--
ALTER TABLE `job_application_survey_responses`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_application_question` (`application_id`,`question_id`),
  ADD KEY `question_id` (`question_id`);

--
-- Indexes for table `job_benefits`
--
ALTER TABLE `job_benefits`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `name` (`name`),
  ADD KEY `idx_active` (`is_active`),
  ADD KEY `idx_display_order` (`display_order`);

--
-- Indexes for table `job_benefit_selections`
--
ALTER TABLE `job_benefit_selections`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_job_benefit` (`job_id`,`benefit_id`),
  ADD KEY `idx_job_id` (`job_id`),
  ADD KEY `idx_benefit_id` (`benefit_id`);

--
-- Indexes for table `job_categories`
--
ALTER TABLE `job_categories`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `job_survey_questions`
--
ALTER TABLE `job_survey_questions`
  ADD PRIMARY KEY (`id`),
  ADD KEY `job_id` (`job_id`),
  ADD KEY `idx_weight` (`weight`);

--
-- Indexes for table `notifications`
--
ALTER TABLE `notifications`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `rate_limits`
--
ALTER TABLE `rate_limits`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_identifier_action_time` (`identifier`,`action`,`created_at`);

--
-- Indexes for table `recruitment_funnel`
--
ALTER TABLE `recruitment_funnel`
  ADD PRIMARY KEY (`id`),
  ADD KEY `job_id` (`job_id`),
  ADD KEY `idx_company_job` (`company_id`,`job_id`),
  ADD KEY `idx_stage_date` (`stage`,`stage_date`);

--
-- Indexes for table `resumes`
--
ALTER TABLE `resumes`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`),
  ADD KEY `document_id` (`document_id`);

--
-- Indexes for table `source_effectiveness`
--
ALTER TABLE `source_effectiveness`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_company_period` (`company_id`,`period_start`);

--
-- Indexes for table `time_to_hire`
--
ALTER TABLE `time_to_hire`
  ADD PRIMARY KEY (`id`),
  ADD KEY `job_id` (`job_id`),
  ADD KEY `candidate_id` (`candidate_id`),
  ADD KEY `idx_company_hire_date` (`company_id`,`hire_date`);

--
-- Indexes for table `work_experience`
--
ALTER TABLE `work_experience`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`);

--
-- Indexes for table `work_references`
--
ALTER TABLE `work_references`
  ADD PRIMARY KEY (`id`),
  ADD KEY `candidate_id` (`candidate_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `admins`
--
ALTER TABLE `admins`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT for table `audit_trail`
--
ALTER TABLE `audit_trail`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=808;

--
-- AUTO_INCREMENT for table `candidates`
--
ALTER TABLE `candidates`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;

--
-- AUTO_INCREMENT for table `candidate_documents`
--
ALTER TABLE `candidate_documents`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT for table `certificates`
--
ALTER TABLE `certificates`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `companies`
--
ALTER TABLE `companies`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `company_users`
--
ALTER TABLE `company_users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `education`
--
ALTER TABLE `education`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `email_notifications`
--
ALTER TABLE `email_notifications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT for table `hr_analytics`
--
ALTER TABLE `hr_analytics`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=406;

--
-- AUTO_INCREMENT for table `hr_performance_metrics`
--
ALTER TABLE `hr_performance_metrics`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `internal_candidates`
--
ALTER TABLE `internal_candidates`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `interviews`
--
ALTER TABLE `interviews`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `jobs`
--
ALTER TABLE `jobs`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT for table `job_applications`
--
ALTER TABLE `job_applications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `job_application_survey_responses`
--
ALTER TABLE `job_application_survey_responses`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `job_benefits`
--
ALTER TABLE `job_benefits`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25;

--
-- AUTO_INCREMENT for table `job_benefit_selections`
--
ALTER TABLE `job_benefit_selections`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `job_categories`
--
ALTER TABLE `job_categories`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `job_survey_questions`
--
ALTER TABLE `job_survey_questions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT for table `notifications`
--
ALTER TABLE `notifications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT for table `rate_limits`
--
ALTER TABLE `rate_limits`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `recruitment_funnel`
--
ALTER TABLE `recruitment_funnel`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `resumes`
--
ALTER TABLE `resumes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `source_effectiveness`
--
ALTER TABLE `source_effectiveness`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `time_to_hire`
--
ALTER TABLE `time_to_hire`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24;

--
-- AUTO_INCREMENT for table `work_experience`
--
ALTER TABLE `work_experience`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `work_references`
--
ALTER TABLE `work_references`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `candidates`
--
ALTER TABLE `candidates`
  ADD CONSTRAINT `candidates_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `candidates_ibfk_2` FOREIGN KEY (`approved_by`) REFERENCES `companies` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `candidates_ibfk_3` FOREIGN KEY (`deactivated_by`) REFERENCES `company_users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `candidate_documents`
--
ALTER TABLE `candidate_documents`
  ADD CONSTRAINT `candidate_documents_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `certificates`
--
ALTER TABLE `certificates`
  ADD CONSTRAINT `certificates_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `company_users`
--
ALTER TABLE `company_users`
  ADD CONSTRAINT `company_users_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `education`
--
ALTER TABLE `education`
  ADD CONSTRAINT `education_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `hr_analytics`
--
ALTER TABLE `hr_analytics`
  ADD CONSTRAINT `hr_analytics_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `hr_analytics_ibfk_2` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `hr_analytics_ibfk_3` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `hr_performance_metrics`
--
ALTER TABLE `hr_performance_metrics`
  ADD CONSTRAINT `hr_performance_metrics_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `internal_candidates`
--
ALTER TABLE `internal_candidates`
  ADD CONSTRAINT `internal_candidates_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `internal_candidates_ibfk_2` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `interviews`
--
ALTER TABLE `interviews`
  ADD CONSTRAINT `interviews_ibfk_1` FOREIGN KEY (`application_id`) REFERENCES `job_applications` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `jobs`
--
ALTER TABLE `jobs`
  ADD CONSTRAINT `jobs_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `jobs_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `job_categories` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `jobs_ibfk_3` FOREIGN KEY (`company_user_id`) REFERENCES `company_users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `job_applications`
--
ALTER TABLE `job_applications`
  ADD CONSTRAINT `job_applications_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `job_applications_ibfk_2` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `job_applications_ibfk_3` FOREIGN KEY (`resume_id`) REFERENCES `resumes` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `job_application_survey_responses`
--
ALTER TABLE `job_application_survey_responses`
  ADD CONSTRAINT `job_application_survey_responses_ibfk_1` FOREIGN KEY (`application_id`) REFERENCES `job_applications` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `job_application_survey_responses_ibfk_2` FOREIGN KEY (`question_id`) REFERENCES `job_survey_questions` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `job_benefit_selections`
--
ALTER TABLE `job_benefit_selections`
  ADD CONSTRAINT `job_benefit_selections_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `job_benefit_selections_ibfk_2` FOREIGN KEY (`benefit_id`) REFERENCES `job_benefits` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `job_survey_questions`
--
ALTER TABLE `job_survey_questions`
  ADD CONSTRAINT `job_survey_questions_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `recruitment_funnel`
--
ALTER TABLE `recruitment_funnel`
  ADD CONSTRAINT `recruitment_funnel_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `recruitment_funnel_ibfk_2` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `resumes`
--
ALTER TABLE `resumes`
  ADD CONSTRAINT `resumes_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `resumes_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `candidate_documents` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `source_effectiveness`
--
ALTER TABLE `source_effectiveness`
  ADD CONSTRAINT `source_effectiveness_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `time_to_hire`
--
ALTER TABLE `time_to_hire`
  ADD CONSTRAINT `time_to_hire_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `time_to_hire_ibfk_2` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `time_to_hire_ibfk_3` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `work_experience`
--
ALTER TABLE `work_experience`
  ADD CONSTRAINT `work_experience_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `work_references`
--
ALTER TABLE `work_references`
  ADD CONSTRAINT `work_references_ibfk_1` FOREIGN KEY (`candidate_id`) REFERENCES `candidates` (`id`) ON DELETE CASCADE;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
