FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
# Copy the certificate
COPY aspnetcore.pfx /https/aspnetcore.pfx
RUN ls /https && ls /https/aspnetcore.pfx && echo "Certificate copied successfully."
ENV ASPNETCORE_URLS=https://+;http://+
ENV ASPNETCORE_HTTPS_PORT=443
ENV ASPNETCORE_Kestrel__Certificates__Default__Password=test
ENV ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetcore.pfx

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
# Install Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y nodejs \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY PosterMaker.UI.csproj .
RUN dotnet restore PosterMaker.UI.csproj
COPY . .

# Build Angular app
WORKDIR "/src/ClientApp"
RUN npm install
RUN npm run build --prod

# Build .NET app
WORKDIR "/src"
RUN dotnet build PosterMaker.UI.csproj -c Release -o /app/build

FROM build AS publish
RUN dotnet publish PosterMaker.UI.csproj -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

# Copy Angular build output to wwwroot
COPY --from=build /src/ClientApp/dist /app/wwwroot

# Ensure SpaProxy properly configured
ENTRYPOINT ["dotnet", "PosterMaker.UI.dll"]