# Stage 1 – Build Flutter web
FROM ghcr.io/cirruslabs/flutter:stable AS builder

WORKDIR /app

COPY pubspec.yaml pubspec.lock* ./
RUN flutter pub get

COPY . .

# Generate localizations (ARB -> Dart) before the main build.
RUN flutter gen-l10n

# Run tests
RUN flutter test

# Inject API base URL at build time via --dart-define.
# Default to same-origin /api to avoid mixed-content in HTTPS deployments.
ARG API_BASE_URL=/api
RUN flutter build web --release \
    --dart-define=API_BASE_URL=${API_BASE_URL}

# Stage 2 – Serve with Caddy
FROM caddy:alpine AS runner

ARG PORT=5000
ENV PORT=${PORT}

COPY --from=builder /app/build/web /usr/share/caddy
COPY Caddyfile /etc/caddy/Caddyfile

EXPOSE ${PORT}
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
