# Build Stage
FROM node:20-slim AS builder

WORKDIR /app

# Core environment for pnpm
RUN corepack enable && corepack prepare pnpm@latest --activate

# Copy root configurations
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./

# Copy all packages for extensions build
COPY packages ./packages

# Install dependencies (only what's needed for extensions)
RUN pnpm install --no-frozen-lockfile \
    --filter "@mintel/directus-extension-*" \
    --filter "acquisition" \
    --filter "acquisition-manager" \
    --filter "customer-manager" \
    --filter "feedback-commander" \
    --filter "people-manager" \
    --filter "./packages/acquisition" \
    --filter "./packages/mail"


# Runtime Stage
FROM directus/directus:11

WORKDIR /directus

# Copy built extensions
COPY --from=builder /app/packages/cms-infra/extensions ./extensions

# Environment defaults (can be overridden)
ENV KEY="infra-cms-key"
ENV SECRET="infra-cms-secret"
ENV DB_CLIENT="sqlite3"
ENV DB_FILENAME="/directus/database/data.db"

# Expose port
EXPOSE 8055
