-- Add user_id to employees to link with login ALTER TABLE employees ADD COLUMN IF NOT EXISTS user_id INT NULL; ALTER TABLE employees ADD COLUMN IF NOT EXISTS join_date DATE NULL; -- Attendance CREATE TABLE IF NOT EXISTS attendance_logs ( id INT AUTO_INCREMENT PRIMARY KEY, employee_id INT NOT NULL, date DATE NOT NULL, check_in DATETIME NULL, check_out DATETIME NULL, status ENUM('Present', 'Late', 'Absent', 'On Leave') DEFAULT 'Present', source VARCHAR(50) DEFAULT 'Web', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (employee_id) REFERENCES employees(id) ON DELETE CASCADE ); -- Leaves CREATE TABLE IF NOT EXISTS leave_requests ( id INT AUTO_INCREMENT PRIMARY KEY, employee_id INT NOT NULL, leave_type VARCHAR(50) NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, days INT NOT NULL, reason TEXT, status ENUM('Pending', 'Approved', 'Rejected') DEFAULT 'Pending', approved_by INT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (employee_id) REFERENCES employees(id) ON DELETE CASCADE ); -- Salaries / Payroll Info CREATE TABLE IF NOT EXISTS employee_salaries ( id INT AUTO_INCREMENT PRIMARY KEY, employee_id INT NOT NULL, basic_salary DECIMAL(10, 2) DEFAULT 0.00, housing_allowance DECIMAL(10, 2) DEFAULT 0.00, transport_allowance DECIMAL(10, 2) DEFAULT 0.00, other_allowance DECIMAL(10, 2) DEFAULT 0.00, currency VARCHAR(10) DEFAULT 'USD', effective_date DATE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (employee_id) REFERENCES employees(id) ON DELETE CASCADE ); -- Biometric Devices (for API auth) CREATE TABLE IF NOT EXISTS biometric_devices ( id INT AUTO_INCREMENT PRIMARY KEY, device_name VARCHAR(100) NOT NULL, ip_address VARCHAR(50), api_key VARCHAR(255) NOT NULL, status TINYINT(1) DEFAULT 1, last_seen DATETIME NULL );