pipeline {
    agent any

    environment {
        APP_DIR  = "/var/www/Cab-Booking/Cab-Booking-Backend"
        APP_NAME = "cab-booking"
    }

    stages {

        stage('Pull Latest Code') {
            steps {
                dir(APP_DIR) {
                    sh 'git pull origin main'
                }
            }
        }

        stage('Install Dependencies') {
            steps {
                dir(APP_DIR) {
                    sh 'npm ci'
                }
            }
        }

        stage('Reload Backend (Zero Downtime)') {
            steps {
                sh '''
                sudo pm2 reload cab-booking --update-env
                sudo pm2 save
                '''
            }
        }
    }
}
