-- HR Module Migration CREATE TABLE IF NOT EXISTS hr_departments ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS hr_employees ( id INT AUTO_INCREMENT PRIMARY KEY, department_id INT, name VARCHAR(255) NOT NULL, email VARCHAR(255), phone VARCHAR(20), position VARCHAR(100), salary DECIMAL(15, 3) DEFAULT 0.000, joining_date DATE, status ENUM('active', 'inactive') DEFAULT 'active', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (department_id) REFERENCES hr_departments(id) ON DELETE SET NULL ); CREATE TABLE IF NOT EXISTS hr_attendance ( id INT AUTO_INCREMENT PRIMARY KEY, employee_id INT NOT NULL, attendance_date DATE NOT NULL, clock_in TIME, clock_out TIME, status ENUM('present', 'absent', 'on_leave') DEFAULT 'present', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (employee_id) REFERENCES hr_employees(id) ON DELETE CASCADE, UNIQUE KEY (employee_id, attendance_date) ); CREATE TABLE IF NOT EXISTS hr_payroll ( id INT AUTO_INCREMENT PRIMARY KEY, employee_id INT NOT NULL, payroll_month INT NOT NULL, payroll_year INT NOT NULL, basic_salary DECIMAL(15, 3) DEFAULT 0.000, bonus DECIMAL(15, 3) DEFAULT 0.000, deductions DECIMAL(15, 3) DEFAULT 0.000, net_salary DECIMAL(15, 3) DEFAULT 0.000, payment_date DATE, status ENUM('pending', 'paid') DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (employee_id) REFERENCES hr_employees(id) ON DELETE CASCADE );