# منصة جدوى — حاوية الإنتاج (Next.js standalone + Chromium للتصدير)
FROM node:22-bookworm-slim AS base
ENV PNPM_HOME=/pnpm PATH=$PNPM_HOME:$PATH
RUN corepack enable

# ── تبعيات النظام لتشغيل Chromium (تصدير PDF) وخطوط عربية للتذييل ──
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates fonts-noto-naskh-arabic fonts-noto-core \
    libasound2 libatk-bridge2.0-0 libatk1.0-0 libcairo2 libcups2 libdbus-1-3 \
    libdrm2 libgbm1 libglib2.0-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 \
    libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 \
    && rm -rf /var/lib/apt/lists/*

FROM base AS build
WORKDIR /repo
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
COPY apps/web/package.json apps/web/
COPY packages/schema/package.json packages/schema/
COPY packages/engine/package.json packages/engine/
COPY packages/ai/package.json packages/ai/
COPY packages/db/package.json packages/db/
RUN pnpm install --frozen-lockfile
COPY . .
ENV NEXT_TELEMETRY_DISABLED=1 BUILD_STANDALONE=1
RUN pnpm --filter @jadwa/web build

FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 \
    PUPPETEER_ARGS="--no-sandbox --disable-dev-shm-usage"
# مخرجات standalone + الأصول + خطوط fontsource لتضمينها في PDF
COPY --from=build /repo/apps/web/.next/standalone ./
COPY --from=build /repo/apps/web/.next/static ./apps/web/.next/static
COPY --from=build /repo/apps/web/public ./apps/web/public
COPY --from=build /repo/node_modules/.pnpm ./node_modules/.pnpm
RUN mkdir -p /app/apps/web/.exports
# متصفح Puppeteer داخل الحاوية
ENV PUPPETEER_CACHE_DIR=/app/.puppeteer
RUN node ./node_modules/.pnpm/puppeteer@*/node_modules/puppeteer/install.mjs || npx puppeteer browsers install chrome

EXPOSE 3000
WORKDIR /app/apps/web
CMD ["node", "server.js"]
