<?php
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
    exit;
}

$settings = get_option( 'wp_ojs_sso_bridge_settings', [] );

if ( ! empty( $settings['cleanup_on_uninstall'] ) ) {
    $meta_key = $settings['user_meta_key'] ?? 'ojs_subscription_active';

    // Remove all plugin-specific user meta
    delete_metadata( 'user', 0, $meta_key, '', true );
    delete_metadata( 'user', 0, 'ojs_subscription_requested', '', true );
    delete_metadata( 'user', 0, 'ojs_birthplace', '', true );
    delete_metadata( 'user', 0, 'ojs_birthdate', '', true );
    delete_metadata( 'user', 0, 'ojs_fiscal_code', '', true );
    delete_metadata( 'user', 0, 'ojs_shipping_address', '', true );
    delete_metadata( 'user', 0, 'ojs_membership_type', '', true );
    delete_metadata( 'user', 0, 'ojs_student_document', '', true );
    delete_metadata( 'user', 0, 'ojs_bonifico_attachment_id', '', true );
    delete_metadata( 'user', 0, 'ojs_consent_guit_soci', '', true );
    delete_metadata( 'user', 0, 'ojs_consent_guit_members', '', true );
    delete_metadata( 'user', 0, 'ojs_consent_privacy', '', true );

    // Remove uploaded files
    $upload_dir    = wp_upload_dir();
    $plugin_upload = $upload_dir['basedir'] . '/ojs-sso-bridge';
    if ( is_dir( $plugin_upload ) ) {
        $it = new RecursiveDirectoryIterator( $plugin_upload, RecursiveDirectoryIterator::SKIP_DOTS );
        $files = new RecursiveIteratorIterator( $it, RecursiveIteratorIterator::CHILD_FIRST );
        foreach ( $files as $file ) {
            if ( $file->isDir() ) {
                rmdir( $file->getRealPath() );
            } else {
                unlink( $file->getRealPath() );
            }
        }
        rmdir( $plugin_upload );
    }
}

delete_option( 'wp_ojs_sso_bridge_settings' );
