# Stage 1: Build frontend
FROM node:20-alpine AS frontend-build
WORKDIR /app
COPY ./src/GreenHome.Web/package*.json ./
RUN npm ci --ignore-scripts || npm install
COPY ./src/GreenHome.Web/ .
RUN npm run build

# Stage 2: Build backend
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY ./src/ .

# Copy built frontend from previous stage
COPY --from=frontend-build /app/dist /src/GreenHome.Api/wwwroot/

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"]