# Etapa 1: Build
FROM node:22-alpine AS builder

# Crea directorio de trabajo
WORKDIR /app

# Copia package.json y package-lock.json si lo tienes
COPY package*.json ./

# Instala dependencias
RUN npm install

# Copia el resto del código
COPY . .

# Compila TypeScript a JavaScript
RUN npx tsc

# Etapa 2: Producción
FROM node:22-alpine

# Crea directorio de trabajo
WORKDIR /app

# Copia solo los archivos necesarios para producción
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/dist ./dist

# Instala solo dependencias de producción
RUN npm install --omit=dev

# Expone el puerto
ARG PORT
ENV PORT $PORT
EXPOSE $PORT

# Comando por defecto
CMD ["node", "dist/server.js"]