# ── Build stage ──────────────────────────────────────────────
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src

# Copy csproj and restore
COPY Nuuru.Server/Nuuru.Server.csproj Nuuru.Server/
RUN dotnet restore Nuuru.Server/Nuuru.Server.csproj

# Copy the rest of the backend source
COPY Nuuru.Server/ Nuuru.Server/

# Publish in Release mode
RUN dotnet publish Nuuru.Server/Nuuru.Server.csproj -c Release -o /app/publish --no-restore

# ── Runtime stage ────────────────────────────────────────────
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime

WORKDIR /app

# Install ffmpeg (needed by FFMpegCore for video thumbnails)
RUN apt-get update && \
    apt-get install -y --no-install-recommends ffmpeg && \
    rm -rf /var/lib/apt/lists/*

# Switch to non-root user
RUN chown -R app:app /app && chmod -R 755 /app
USER app

COPY --from=build /app/publish .

# Create uploads directory
RUN mkdir -p /app/uploads

EXPOSE 8080
ENV ASPNETCORE_URLS=http://+:8080

ENTRYPOINT ["dotnet", "Nuuru.Server.dll"]
