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 ["src/Purrse.Core/Purrse.Core.csproj", "Purrse.Core/"]
COPY ["src/Purrse.Data/Purrse.Data.csproj", "Purrse.Data/"]
COPY ["src/Purrse.Api/Purrse.Api.csproj", "Purrse.Api/"]
COPY ["src/Purrse.Plugins.Abstractions/Purrse.Plugins.Abstractions.csproj", "Purrse.Plugins.Abstractions/"]
COPY ["src/Purrse.Plugins.OFX/Purrse.Plugins.OFX.csproj", "Purrse.Plugins.OFX/"]
COPY ["src/Purrse.Plugins.CSV/Purrse.Plugins.CSV.csproj", "Purrse.Plugins.CSV/"]
COPY ["src/Purrse.Plugins.QIF/Purrse.Plugins.QIF.csproj", "Purrse.Plugins.QIF/"]
RUN dotnet restore "Purrse.Api/Purrse.Api.csproj"
COPY src/ .
RUN dotnet publish "Purrse.Api/Purrse.Api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
RUN mkdir -p /app/plugins /app/imports
ENTRYPOINT ["dotnet", "Purrse.Api.dll"]
