feat(backend): Replace Node.js API with .NET 8

This commit completes the migration of the backend service from a Node.js/Express application to an ASP.NET Core 8 Minimal API.

- Re-implemented all API endpoints in C# for improved performance and type safety.
- Updated the Gitea Actions workflow to use the `setup-dotnet` action, `dotnet publish` for building, and now caches NuGet packages.
- Modified the deployment to create an `appsettings.Production.json` file from Gitea secrets instead of a `.env` file.
- Updated the PM2 ecosystem configuration to run the application using the `dotnet` interpreter.
This commit is contained in:
2025-10-29 19:14:20 -03:00
parent f14e298c46
commit 40fd792be1
30 changed files with 1017 additions and 1077 deletions

View File

@@ -0,0 +1,8 @@
using JoaoLoureiro.Portfolio.Core.Models;
namespace JoaoLoureiro.Portfolio.Core.Interfaces;
public interface IEmailSender
{
Task SendEmailAsync(EmailToSend email, CancellationToken cancellationToken = default);
}

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,8 @@
namespace JoaoLoureiro.Portfolio.Core.Models;
public class EmailToSend
{
public required string SenderName { get; set; }
public required string ReplyToEmail { get; set; }
public required string MessageBody { get; set; }
}