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

COPY ["src/FinControl.API/FinControl.API.csproj", "src/FinControl.API/"]
COPY ["src/FinControl.Domain/FinControl.Domain.csproj", "src/FinControl.Domain/"]
COPY ["src/FinControl.Application/FinControl.Application.csproj", "src/FinControl.Application/"]
COPY ["src/FinControl.Infrastructure/FinControl.Infrastructure.csproj", "src/FinControl.Infrastructure/"]
COPY ["src/FinControl.Contracts/FinControl.Contracts.csproj", "src/FinControl.Contracts/"]

RUN dotnet restore "src/FinControl.API/FinControl.API.csproj"

COPY . .
WORKDIR "/src/src/FinControl.API"
RUN dotnet build "FinControl.API.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "FinControl.API.csproj" -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS final
WORKDIR /app
COPY --from=publish /app/publish .

EXPOSE 80
ENTRYPOINT ["dotnet", "FinControl.API.dll"]
