/**
 * StaffManager: Handles staff records, attendance, and payroll.
 */

class StaffManager {
    constructor() {
        this.staff = [
            { id: 'S001', name: 'Dr. Sharma', role: 'Doctor', salary: 120000, incentives: 4500, status: 'PRESENT' },
            { id: 'S002', name: 'Anjali Singh', role: 'Pharmacist', salary: 35000, incentives: 1200, status: 'PRESENT' },
            { id: 'S003', name: 'Vikram Goel', role: 'Lab Tech', salary: 28000, incentives: 800, status: 'ABSENT' },
            { id: 'S004', name: 'Priya Raj', role: 'Nurse', salary: 25000, incentives: 0, status: 'PRESENT' }
        ];
    }

    getStaffList() {
        return this.staff;
    }

    calculatePayroll(staffId) {
        const member = this.staff.find(s => s.id === staffId);
        if (member) {
            return {
                base: member.salary,
                incentives: member.incentives,
                total: member.salary + member.incentives
            };
        }
        return null;
    }

    updateStatus(staffId, status) {
        const member = this.staff.find(s => s.id === staffId);
        if (member) {
            member.status = status;
        }
    }
}

module.exports = new StaffManager();
