# Base Stage
FROM node:24.12.0-alpine AS base
WORKDIR /app

RUN corepack enable && corepack prepare pnpm@latest --activate

COPY pnpm-lock.yaml package.json ./

# Development Stage
FROM base AS development
EXPOSE 5432
CMD ["sh", "-c", "pnpm install && pnpm dev --host"]

# Build Stage
FROM base AS build

RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build

# Production Stage
FROM fholzer/nginx-brotli:v1.28.0 AS production

RUN rm -rf /usr/share/nginx/html/*
COPY --from=build /app/.output/public /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80