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

COPY FamilyTreeManager.slnx ./
COPY src/backend/FamilyTree.Api/FamilyTree.Api.csproj src/backend/FamilyTree.Api/
COPY src/backend/FamilyTree.Application/FamilyTree.Application.csproj src/backend/FamilyTree.Application/
COPY src/backend/FamilyTree.Domain/FamilyTree.Domain.csproj src/backend/FamilyTree.Domain/
COPY src/backend/FamilyTree.Infrastructure/FamilyTree.Infrastructure.csproj src/backend/FamilyTree.Infrastructure/
RUN dotnet restore src/backend/FamilyTree.Api/FamilyTree.Api.csproj

COPY . .
RUN dotnet publish src/backend/FamilyTree.Api/FamilyTree.Api.csproj -c Release -o /app/publish /p:UseAppHost=false

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app
RUN apt-get update \
    && apt-get install -y --no-install-recommends libgssapi-krb5-2 curl \
    && rm -rf /var/lib/apt/lists/*
COPY --from=build /app/publish .
EXPOSE 8080
ENV ASPNETCORE_URLS=http://+:8080
ENTRYPOINT ["dotnet", "FamilyTree.Api.dll"]
