FROM 194.5.195.53:32082/dotnet/sdk:9.0 AS build
WORKDIR /src

# Copy NuGet config, local packages, and project file
COPY ["BackOffice/NuGet.config", "NuGet.config"]
COPY ["nupkg/", "nupkg/"]
COPY ["BackOffice/BackOffice.csproj", "BackOffice/"]

# Restore dependencies
RUN dotnet restore "BackOffice/BackOffice.csproj" --configfile NuGet.config

# Copy all source code
COPY . .

# Build and publish
WORKDIR "/src/BackOffice"
RUN dotnet publish "BackOffice.csproj" -c Release -o /app/publish

# Runtime stage - nginx for Blazor WebAssembly
FROM 194.5.195.53:32082/nginx:alpine AS final
WORKDIR /usr/share/nginx/html

# Remove default nginx files
RUN rm -rf /usr/share/nginx/html/*

# Copy published wwwroot (Blazor WASM output)
COPY --from=build /app/publish/wwwroot .

# Configure nginx for SPA routing
RUN echo 'server { \
    listen 80; \
    server_name _; \
    location / { \
        root /usr/share/nginx/html; \
        try_files $uri $uri/ /index.html; \
    } \
}' > /etc/nginx/conf.d/default.conf

EXPOSE 80
