FROM node:22-alpine AS builder

WORKDIR /app

# better-sqlite3 native modülünü derleyebilmek için (prebuild indirilemezse
# node-gyp'in Python/make/g++'a ihtiyacı var — Alpine imajında varsayılan yok).
RUN apk add --no-cache python3 make g++

# Paket dosyalarını kopyala ve bağımlılıkları yükle
COPY package*.json ./
RUN npm ci

# Kaynak kodları kopyala ve derle
COPY . .
RUN npm run build

FROM node:22-alpine AS runner

WORKDIR /app

# Sadece production bağımlılıklarını yükle (daha küçük imaj boyutu) — build
# araçları geçici (.build-deps) olarak eklenip npm ci sonrası kaldırılır,
# nihai imaj şişmez ama better-sqlite3 yine de derlenebilir.
COPY package*.json ./
RUN apk add --no-cache --virtual .build-deps python3 make g++ \
  && npm ci --omit=dev \
  && apk del .build-deps

# Derlenmiş kodları builder aşamasından al
COPY --from=builder /app/dist ./dist

# Uygulama portunu belirt
EXPOSE 3001

# Gerekli ortam değişkenleri (Coolify üzerinden de ezilebilir)
ENV PORT=3001
ENV NODE_ENV=production

# Uygulamayı başlat
CMD ["npm", "start"]
