M365PlannerPro.psm1

#Requires -Version 7.0
#Requires -Modules Microsoft.Graph.Planner

<#
.SYNOPSIS
    M365PlannerPro - Advanced Microsoft Planner Management Module
 
.DESCRIPTION
    This module provides advanced functionality for managing Microsoft 365 Planner
    including plan cloning, bulk task imports, workload reporting, and safe updates
    with automatic ETag concurrency control.
 
.NOTES
    Author: Sergio Cánovas Cardona
    Version: 1.1.0
    Requires: Microsoft.Graph.Planner module
#>


# Get public function definition files and dot source them
$PublicFunctions = @(Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue)

foreach ($import in $PublicFunctions) {
    try {
        Write-Verbose "Importing function: $($import.FullName)"
        . $import.FullName
    }
    catch {
        Write-Error "Failed to import function $($import.FullName): $_"
    }
}

# Export public functions
Export-ModuleMember -Function $PublicFunctions.BaseName

# Module initialization
Write-Verbose "M365PlannerPro module loaded successfully"
Write-Verbose "Ensure you are connected to Microsoft Graph with appropriate scopes:"
Write-Verbose " - Group.Read.All"
Write-Verbose " - Tasks.ReadWrite"
Write-Verbose "Use: Connect-MgGraph -Scopes 'Group.Read.All','Tasks.ReadWrite'"