FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build
WORKDIR /app

# Copy all project files and restore
COPY Registration.API/Registration.API.csproj ./Registration.API/
COPY Registration.Infra/Registration.Infra.csproj ./Registration.Infra/
COPY Registration.Domain/Registration.Domain.csproj ./Registration.Domain/
RUN dotnet restore Registration.API/Registration.API.csproj

# Copy all source files and build
COPY Registration.API/. ./Registration.API/
COPY Registration.Infra/. ./Registration.Infra/
COPY Registration.Domain/. ./Registration.Domain/
WORKDIR /app/Registration.API
RUN dotnet publish -c Release -o /app/out

# Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine
WORKDIR /app
COPY --from=build /app/out .

EXPOSE 8080
ENTRYPOINT ["dotnet", "Registration.API.dll"]
