#!/bin/bash
# build.sh - Script para build e deploy do JobMaker

set -e

echo "🚀 JobMaker Build & Deploy Script"
echo "================================="

# Cores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# Função para logs coloridos
log_info() {
    echo -e "${BLUE}ℹ️  $1${NC}"
}

log_success() {
    echo -e "${GREEN}✅ $1${NC}"
}

log_warning() {
    echo -e "${YELLOW}⚠️  $1${NC}"
}

log_error() {
    echo -e "${RED}❌ $1${NC}"
}

# Verificar se Docker está instalado
if ! command -v docker &> /dev/null; then
    log_error "Docker não está instalado!"
    exit 1
fi

# Verificar estrutura de arquivos
log_info "Verificando estrutura de arquivos..."

required_files=(
    "index.html"
    "en/index.html"
    "css/styles.css"
    "js/scripts.js"
    "assets/img/jobmaker_logo.png"
    "Dockerfile"
    "nginx.conf"
)

for file in "${required_files[@]}"; do
    if [[ ! -f "$file" ]]; then
        log_error "Arquivo obrigatório não encontrado: $file"
        exit 1
    fi
done

log_success "Todos os arquivos obrigatórios encontrados!"

# Build da imagem Docker
log_info "Construindo imagem Docker..."

IMAGE_NAME="jobmaker-website"
IMAGE_TAG="latest"

docker build -t $IMAGE_NAME:$IMAGE_TAG . || {
    log_error "Falha no build da imagem Docker!"
    exit 1
}

log_success "Imagem Docker construída: $IMAGE_NAME:$IMAGE_TAG"

# Parar container existente se estiver rodando
if docker ps -q -f name=jobmaker-web &> /dev/null; then
    log_info "Parando container existente..."
    docker stop jobmaker-web || true
    docker rm jobmaker-web || true
fi

# Executar novo container
log_info "Iniciando novo container..."

docker run -d \
    --name jobmaker-web \
    -p 8080:80 \
    --restart unless-stopped \
    $IMAGE_NAME:$IMAGE_TAG || {
    log_error "Falha ao iniciar container!"
    exit 1
}

log_success "Container iniciado com sucesso!"

# Verificar se o site está respondendo
log_info "Verificando se o site está respondendo..."

sleep 3

if curl -f http://localhost:8080 &> /dev/null; then
    log_success "Site está online! 🎉"
    echo ""
    echo "📍 URLs disponíveis:"
    echo "   Português: http://localhost:8080"
    echo "   English:   http://localhost:8080/en/"
    echo ""
    echo "🐳 Comandos Docker úteis:"
    echo "   Ver logs:     docker logs jobmaker-web"
    echo "   Parar:        docker stop jobmaker-web"
    echo "   Reiniciar:    docker restart jobmaker-web"
    echo "   Remover:      docker rm -f jobmaker-web"
else
    log_error "Site não está respondendo!"
    echo ""
    echo "🔍 Para debug, verifique os logs:"
    echo "   docker logs jobmaker-web"
    exit 1
fi

# Mostrar informações do container
echo ""
log_info "Informações do container:"
docker ps | grep jobmaker-web

echo ""
log_success "Deploy concluído com sucesso! 🚀"

---

#!/bin/bash
# deploy-production.sh - Script para deploy em produção

set -e

echo "🚀 JobMaker Production Deploy"
echo "============================"

# Verificar se estamos na branch main
BRANCH=$(git branch --show-current)
if [[ "$BRANCH" != "main" ]]; then
    log_error "Deploy de produção deve ser feito da branch main!"
    log_info "Branch atual: $BRANCH"
    exit 1
fi

# Verificar se não há mudanças pendentes
if [[ -n $(git status --porcelain) ]]; then
    log_error "Há mudanças não commitadas!"
    log_info "Commit suas mudanças antes do deploy."
    exit 1
fi

# Configurações de produção
REGISTRY="your-registry.com"  # Substituir pelo seu registry
IMAGE_NAME="jobmaker-website"
VERSION=$(git rev-parse --short HEAD)
PRODUCTION_TAG="$REGISTRY/$IMAGE_NAME:$VERSION"
LATEST_TAG="$REGISTRY/$IMAGE_NAME:latest"

log_info "Versão: $VERSION"

# Build da imagem
log_info "Construindo imagem para produção..."
docker build -t $PRODUCTION_TAG -t $LATEST_TAG .

# Push para registry
log_info "Enviando imagem para registry..."
docker push $PRODUCTION_TAG
docker push $LATEST_TAG

# Deploy (exemplo para Docker Swarm)
log_info "Fazendo deploy em produção..."

# Criar/atualizar serviço Docker Swarm
docker service create \
    --name jobmaker-web \
    --publish 80:80 \
    --replicas 2 \
    --update-parallelism 1 \
    --update-delay 10s \
    --restart-condition on-failure \
    --restart-max-attempts 3 \
    $LATEST_TAG || \
docker service update \
    --image $LATEST_TAG \
    jobmaker-web

log_success "Deploy de produção concluído!"

echo ""
echo "🌐 Site em produção:"
echo "   https://jobmaker.com.br"
echo "   https://jobmaker.com.br/en/"

---

# docker-compose.yml - Para desenvolvimento local
version: '3.8'

services:
  jobmaker-web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - .:/usr/share/nginx/html:ro
    restart: unless-stopped
    container_name: jobmaker-web-dev

  # Nginx para HTTPS local (desenvolvimento)
  nginx-ssl:
    image: nginx:alpine
    ports:
      - "443:443"
    volumes:
      - ./nginx-ssl.conf:/etc/nginx/conf.d/default.conf
      - ./ssl/:/etc/ssl/certs/
    depends_on:
      - jobmaker-web
    profiles:
      - ssl

---

# .dockerignore
.git
.gitignore
README.md
*.md
.env
.env.*
node_modules
*.log
.DS_Store
Thumbs.db

# Arquivos de desenvolvimento
*.sh
docker-compose.yml
.dockerignore

# Arquivos temporários
*.tmp
*.temp