# Build stage
FROM golang:1.25-alpine AS builder

RUN apk add --no-cache git

# Configure Go private modules
# Disable workspace mode - each component builds independently with replace directives
ENV GOPRIVATE=git.threesix.ai/*
ENV GOWORK=off

WORKDIR /app

# Copy shared pkg and this worker only
COPY pkg/ ./pkg/
COPY workers/{{COMPONENT_NAME}}/ ./workers/{{COMPONENT_NAME}}/

# Download dependencies (populates go.sum if empty)
RUN cd pkg && go mod download
RUN cd workers/{{COMPONENT_NAME}} && go mod download

# Build from the worker directory (uses replace directive for ../pkg)
RUN cd workers/{{COMPONENT_NAME}} && CGO_ENABLED=0 go build -o /{{COMPONENT_NAME}} ./cmd/worker

# Production stage
FROM alpine:3.19

RUN apk add --no-cache ca-certificates tzdata

WORKDIR /

COPY --from=builder /{{COMPONENT_NAME}} /{{COMPONENT_NAME}}

ENTRYPOINT ["/{{COMPONENT_NAME}}"]
