pipeline {
    agent any

    environment {
        //fd_secret_ignore
        GOOGLE_CHAT_LINK = 'https://chat.googleapis.com/v1/spaces/AAAAdtA0kaI/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=UH4Advudj0TXbQhfbLQP60Bmz2d2hXRqqtIR6raO4LQ'
        APP_URL= 'api.enterprisebrain.divami.com'
        DEPLOYMENT_PATH = '/var/www/html/ai-enterprise-brain/backend'
        DEPLOYMENT_USER = 'ai-ritvik'
        ENV = 'Prod'
    }

    stages {
        stage('get_commit_msg') {
            steps {
                script {
                    env.GIT_COMMIT_MSG = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
                    GIT_COMMIT_EMAIL = sh (
                        script: 'git --no-pager show -s --format=\'%ae\'',
                        returnStdout: true
                    ).trim()
                    echo "Git committer email: ${GIT_COMMIT_EMAIL}"
                    echo "${GIT_COMMIT_MSG}"
                }
            }
        }
        
        stage('Deployment') {
            steps {
                script {
                    echo "Deploying D${ENV}"
                    sh 'tar -cvzf backend.tar.gz backend/'
                    sh "scp backend.tar.gz ${DEPLOYMENT_USER}@${APP_URL}:/var/www/html/ai-enterprise-brain/"
                    sh "ssh ${DEPLOYMENT_USER}@${APP_URL} \"cd /var/www/html/ai-enterprise-brain && sudo tar -xvzf backend.tar.gz\""
                    sh "ssh ${DEPLOYMENT_USER}@${APP_URL} \"cd ${DEPLOYMENT_PATH} && sudo chown -R ${DEPLOYMENT_USER}:${DEPLOYMENT_USER} *\""
                    sh "ssh ${DEPLOYMENT_USER}@${APP_URL} \"cd ${DEPLOYMENT_PATH} && source .venv/bin/activate && /home/ai-ritvik/.local/bin/uv sync\""
                    sh "ssh ${DEPLOYMENT_USER}@${APP_URL} \"cd ${DEPLOYMENT_PATH} && sudo systemctl restart ai-enterprise-brain.service\""
                }
            }
        }
    }

    post {
        always {
            script {
                // def message = "Project Name: ${JOB_NAME}\n" +
                //               "Build Number: ${BUILD_NUMBER}\n" +
                //               "Git Branch: ${GIT_BRANCH}\n" +
                //               "Environment: ${ENV}\n"

                // def buildResult = currentBuild.currentResult
                // if (buildResult == "SUCCESS") {
                //     message += "Output: https://${env.APP_URL}\nBuild Result: Success"
                // } else {
                //     message += "Output Log: ${env.RUN_DISPLAY_URL}\nBuild Result: Failed"
                // }

                // googlechatnotification message: message, url: "${GOOGLE_CHAT_LINK}"
                cleanWs()
            }
        }
    }
}
