pipeline {
    agent any
    environment {
        STATIC = '/var/www/manager'
        NOTIFY = "${ITSM_BASE_URL}/api/messenger/webhook"
    }
    options { buildDiscarder(logRotator(numToKeepStr: '5')); timeout(time: 15, unit: 'MINUTES') }
    stages {
        stage('Checkout') { steps { checkout scm } }
        stage('Build') {
            steps {
                dir('frontend') {
                    sh 'npm ci 2>/dev/null || npm install'
                    sh 'npm run build'
                }
            }
        }
        stage('Deploy') {
            when { branch 'main' }
            steps {
                sh """
                    cp -r frontend/dist/. ${STATIC}/
                    systemctl restart guardia-manager 2>/dev/null || true
                """
            }
        }
    }
    post {
        success { sh "curl -sf -X POST ${NOTIFY} -H 'Content-Type:application/json' -d '{\"event\":\"build_result\",\"room\":\"ops\",\"success\":true,\"result_summary\":\"✅ guardia-manager 배포 완료\"}' 2>/dev/null || true" }
        failure { sh "curl -sf -X POST ${NOTIFY} -H 'Content-Type:application/json' -d '{\"event\":\"build_result\",\"room\":\"ops\",\"success\":false,\"result_summary\":\"❌ guardia-manager 빌드 실패\"}' 2>/dev/null || true" }
    }
}