FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

# Install Node.js and build tools for native modules
RUN apt-get update && apt-get install -y nodejs npm python3 make g++ && rm -rf /var/lib/apt/lists/*

COPY ./src/ .

# Use npm ci for clean install based on package-lock.json
RUN cd ./GreenHome.Web && \
    npm ci

RUN dotnet restore --verbosity detailed
RUN dotnet publish -c Release -o /app

FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
WORKDIR /app
COPY --from=build /app .
RUN mkdir -p /app/My_StaticFiles
RUN mkdir -p /app/files
ENTRYPOINT ["dotnet", "GreenHome.Api.dll"]