FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
WORKDIR /app
EXPOSE 8080

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
COPY ["BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj", "BackOffice.BFF.WebApi/"]
COPY ["BackOffice.BFF.WebApi/NuGet.config", "BackOffice.BFF.WebApi/"]
COPY ["BackOffice.BFF.Application/BackOffice.BFF.Application.csproj", "BackOffice.BFF.Application/"]
COPY ["BackOffice.BFF.Infrastructure/BackOffice.BFF.Infrastructure.csproj", "BackOffice.BFF.Infrastructure/"]
COPY ["BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj", "BackOffice.BFF.Domain/"]

RUN dotnet restore "BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj" -c Release

COPY . .
WORKDIR "/src/BackOffice.BFF.WebApi"
RUN dotnet build "BackOffice.BFF.WebApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "BackOffice.BFF.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false

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

ENV ASPNETCORE_URLS=http://+:8080
ENTRYPOINT ["dotnet", "BackOffice.BFF.WebApi.dll"]
