// Define a nested object for a company
const company = {
    name: "GeeksforGeeks",
    location: "Noida",
    employees: {
        count: 100,
        departments: ["Development", "Design", "Marketing"],
        details: [
            { name: "John Doe", position: "Developer" },
            { name: "Jane Smith", position: "Designer" }
        ]
    }
};

// Function to display company information
function displayCompanyInfo(company) {
    console.log("Company Name:", company.name);
    console.log("Location:", company.location);
    console.log("Employee Count:", company.employees.count);
    console.log("Departments:", company.employees.departments.join(", "));
    
    console.log("Employee Details:");
    company.employees.details.forEach(employee => {
        console.log(`- ${employee.name}, Position: ${employee.position}`);
    });
}

// Function to add a new employee
function addEmployee(company, employeeName, employeePosition) {
    const newEmployee = { name: employeeName, position: employeePosition };
    company.employees.details.push(newEmployee);
    company.employees.count++;
}

// Function to update the department list
function addDepartment(company, departmentName) {
    if (!company.employees.departments.includes(departmentName)) {
        company.employees.departments.push(departmentName);
        console.log(`Department "${departmentName}" added.`);
    } else {
        console.log(`Department "${departmentName}" already exists.`);
    }
}

// Display original company info
console.log("Original Company Information:");
displayCompanyInfo(company);

// Add a new employee
addEmployee(company, "Alice Johnson", "Project Manager");
console.log("\nAfter Adding New Employee:");
displayCompanyInfo(company);

// Add a new department
addDepartment(company, "Sales");
console.log("\nAfter Adding New Department:");
displayCompanyInfo(company);

// Attempt to add an existing department
addDepartment(company, "Development");

/*OUTPUT
Original Company Information:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 100
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer

After Adding New Employee:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager

After Adding New Department:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing, Sales
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager

Department "Development" already exists.*/