# Stage 1: Build Frontend
FROM node:20-alpine AS build_frontend
WORKDIR /app

# Skopiuj pliki package.json by zoptymalizować cache
COPY frontend/package*.json ./
# Instalacja zależności
RUN npm install

# Kopiuj resztę i zbuduj
COPY frontend/ ./
RUN npm run build

# Stage 2: PocketBase Base (Używany m.in jako środowisko developerskie DB)
FROM alpine:latest AS pb_base

RUN apk add --no-cache unzip ca-certificates wget

ARG PB_VERSION=0.22.8
RUN wget https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip \
    && unzip pocketbase_${PB_VERSION}_linux_amd64.zip \
    && chmod +x /pocketbase \
    && rm pocketbase_${PB_VERSION}_linux_amd64.zip

EXPOSE 8090

# Stage 3: Produckja PocketBase (gotowa do użycia)
FROM pb_base AS production

# Skopiuj statyczny build frontendu prosto z vite do pb_public (serwowania przez Pocketbase)
COPY --from=build_frontend /app/dist /pb_public

# Skopiuj ewentualne migracje i hooki na produkcję
COPY backend/pb_migrations /pb_migrations
COPY backend/pb_hooks /pb_hooks

CMD ["/pocketbase", "serve", "--http=0.0.0.0:8090", "--hooksDir=/pb_hooks"]
