pipeline {
    agent any

    environment {
        APP_NAME = 'social-mcp'
    }

    triggers {
        GenericTrigger(token: 'social-mcp-deploy')
    }

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Build Docker Image') {
            steps {
                sh "docker build --build-arg HTTP_PROXY=http://172.17.0.1:7897 --build-arg HTTPS_PROXY=http://172.17.0.1:7897 -t ${APP_NAME}:${BUILD_NUMBER} -t ${APP_NAME}:latest ."
            }
        }

        stage('Deploy') {
            steps {
                sh """
                    docker stop ${APP_NAME} || true
                    docker rm ${APP_NAME} || true
                    mkdir -p /data/${APP_NAME}
                    chown 1001:1001 /data/${APP_NAME}
                    docker run -d \
                        --name ${APP_NAME} \
                        --network nginx \
                        -p 3010:3000 \
                        --shm-size=1g \
                        -v /data/${APP_NAME}:/home/appuser/.social-mcp \
                        -e NODE_ENV=production \
                        -e HOST=0.0.0.0 \
                        -e PORT=3000 \
                        -e HEADLESS=true \
                        -e COOKIE_DIR=/home/appuser/.social-mcp \
                        -e ALLOW_REMOTE=yes-i-understand-the-risk \
                        --restart unless-stopped \
                        ${APP_NAME}:latest
                """
            }
        }
    }

    post {
        success {
            echo "Deployed ${APP_NAME} build #${BUILD_NUMBER} successfully"
        }
        failure {
            echo "Build #${BUILD_NUMBER} failed"
        }
    }
}
