pipeline {
    agent any

    stages {
        stage('Limpieza y Preparación') {
            steps {
                echo 'Bajando la versión anterior para actualizar...'
                // Detenemos contenedores viejos si existen para evitar conflictos
                sh 'docker compose down || true'
            }
        }

        stage('Construcción (Build)') {
            steps {
                echo 'Construyendo la imagen de la API Django...'
                // Construimos la imagen usando el Dockerfile
                sh 'docker compose build'
            }
        }

        stage('Despliegue (Deploy)') {
            steps {
                echo 'Arrancando el contenedor en producción...'
                // Levantamos el contenedor en segundo plano
                sh 'docker compose up -d'
            }
        }

        stage('Verificación') {
            steps {
                echo 'Listando contenedores activos:'
                sh 'docker ps'
            }
        }
    }
}