FROM node:22-alpine AS css_builder

WORKDIR /build

# install dependencies
COPY ./package.json .
COPY ./package-lock.json .
RUN npm i

# build css
COPY ./postcss.config.js .
COPY ./tailwind.config.js .
ADD ./src/ /build/src
RUN npm run build

FROM golang:1.26-alpine AS exe_builder

RUN go install github.com/a-h/templ/cmd/templ@latest

WORKDIR /build
COPY --from=css_builder /build/src/go.mod /build
COPY --from=css_builder /build/src/go.sum /build
RUN ls -al
RUN go mod download

COPY --from=css_builder /build/src/ /build
RUN templ generate
RUN go build -o mmaschedule

FROM scratch AS final

COPY --from=exe_builder /build/mmaschedule /mmaschedule

ENTRYPOINT ["/mmaschedule"]
