38471-vm/db/migrations/20260217_hr_module.sql
Flatlogic Bot 990505d301 add HR
2026-02-17 17:15:12 +00:00

48 lines
1.6 KiB
SQL

-- 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
);