from m365_user_manager import UserManagementOrchestrator
from m365_user_manager.utils.input_identifiers import FormFields

def main():
    """Main entry point for the user management application.

    This function serves as the primary entry point for the ASIO user management system.
    It initializes and executes the UserManagementOrchestrator, which coordinates the
    entire user creation and management process in Microsoft 365.

    The orchestrator handles:
    - Authentication with Microsoft Graph API
    - User data validation and processing
    - User creation in Azure Active Directory
    - License assignment
    - Group membership management
    - Error handling and logging

    Returns:
        None

    Raises:
        AuthenticationError: If authentication with Microsoft Graph API fails
        UserCreationError: If user creation process encounters an error
        LicenseAssignmentError: If license assignment fails
        GroupManagementError: If group membership operations fail
    """
    input_ids = FormFields(webhook_url="Webhook_URL_1737575340806")
    orchestrator = UserManagementOrchestrator(running_in_asio=True)
    input_ids.get_ids()
    orchestrator.run()

if __name__ == "__main__":
    main()