pipeline {
    agent any

    environment {
        DOTNET_CLI_TELEMETRY_OPTOUT = '1'
        DOTNET_ROOT = '/var/jenkins_home/.dotnet'
        DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = '1'
        PATH = "${env.DOTNET_ROOT}:${env.PATH}"
    }

    stages {
        stage('Setup .NET') {
            steps {
                sh '''
                    if [ ! -f "$DOTNET_ROOT/dotnet" ]; then
                        echo "=== Installing .NET 10 SDK ==="
                        mkdir -p $DOTNET_ROOT
                        curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 10.0 --install-dir $DOTNET_ROOT
                    fi
                    dotnet --version
                '''
            }
        }

        stage('Restore') {
            steps {
                echo '=== Restore NuGet Packages ==='
                sh 'dotnet restore'
            }
        }

        stage('Build') {
            steps {
                echo '=== Build Solution ==='
                sh 'dotnet build --no-restore'
            }
        }
    }

    post {
        success {
            echo 'Build succeeded!'
        }
        failure {
            echo 'Build failed!'
        }
        always {
            deleteDir()
        }
    }
}
