FROM node:22 AS frontend
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm ci
COPY frontend/ ./
RUN npm run build

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

COPY src/Tau.Acuvim.Console/Tau.Acuvim.Console.csproj ./Tau.Acuvim.Console/
RUN dotnet restore Tau.Acuvim.Console/Tau.Acuvim.Console.csproj

COPY src/Tau.Acuvim.Console/ ./Tau.Acuvim.Console/
RUN dotnet publish Tau.Acuvim.Console/Tau.Acuvim.Console.csproj -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
WORKDIR /app
COPY --from=build /app/publish .
COPY --from=frontend /app/frontend/dist ./wwwroot/

RUN mkdir -p /app/firmware

ENV ASPNETCORE_URLS=http://+:5000
EXPOSE 5000

ENTRYPOINT ["dotnet", "Tau.Acuvim.Console.dll"]
