diff --git a/RecNet.sln b/RecNet.sln index 4f0a5cb..6227855 100644 --- a/RecNet.sln +++ b/RecNet.sln @@ -1,18 +1,18 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.ServiceDefaults", "RecNet.ServiceDefaults\RecNet.ServiceDefaults.csproj", "{7773AA04-37C6-4E72-98AB-A239ED268ECC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.ServiceDefaults", "src\RecNet.ServiceDefaults\RecNet.ServiceDefaults.csproj", "{7773AA04-37C6-4E72-98AB-A239ED268ECC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppHost", "AppHost\AppHost.csproj", "{F539C6BB-F396-41CC-B275-DF8CC3B8CA2F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppHost", "src\AppHost\AppHost.csproj", "{F539C6BB-F396-41CC-B275-DF8CC3B8CA2F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "API", "API\API.csproj", "{CD6E60F3-675A-4F51-8645-9CA6B35C1032}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "API", "src\API\API.csproj", "{CD6E60F3-675A-4F51-8645-9CA6B35C1032}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Infrastructure", "RecNet.Infrastructure\RecNet.Infrastructure.csproj", "{E61153A9-DAD9-4ED3-A8A5-8F619BBE54D4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Infrastructure", "src\RecNet.Infrastructure\RecNet.Infrastructure.csproj", "{E61153A9-DAD9-4ED3-A8A5-8F619BBE54D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Domain", "RecNet.Domain\RecNet.Domain.csproj", "{4E9D18A6-BC68-49BE-81FE-03B74270485D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Domain", "src\RecNet.Domain\RecNet.Domain.csproj", "{4E9D18A6-BC68-49BE-81FE-03B74270485D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Application", "RecNet.Application\RecNet.Application.csproj", "{BF255F63-3A85-4AD4-AB13-1C1C1C1724ED}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.Application", "src\RecNet.Application\RecNet.Application.csproj", "{BF255F63-3A85-4AD4-AB13-1C1C1C1724ED}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.MigrationService", "RecNet.MigrationService\RecNet.MigrationService.csproj", "{2343DEEB-8CBA-4B0A-BE67-3F8F76E6E7C1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RecNet.MigrationService", "src\RecNet.MigrationService\RecNet.MigrationService.csproj", "{2343DEEB-8CBA-4B0A-BE67-3F8F76E6E7C1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/API/API.csproj b/src/API/API.csproj similarity index 100% rename from API/API.csproj rename to src/API/API.csproj diff --git a/src/API/Configuration/NeutrinoOptions.cs b/src/API/Configuration/NeutrinoOptions.cs new file mode 100644 index 0000000..ba601bb --- /dev/null +++ b/src/API/Configuration/NeutrinoOptions.cs @@ -0,0 +1,7 @@ +namespace API.Configuration; + +public class NeutrinoOptions +{ + public string Secret { get; set; } = string.Empty; + public bool ValidateSecret { get; set; } = false; +} \ No newline at end of file diff --git a/API/Configuration/RecNetOptions.cs b/src/API/Configuration/RecNetOptions.cs similarity index 100% rename from API/Configuration/RecNetOptions.cs rename to src/API/Configuration/RecNetOptions.cs diff --git a/API/Contracts/Neutrino/Enums/AuthenticationResultCode.cs b/src/API/Contracts/Neutrino/Enums/AuthenticationResultCode.cs similarity index 100% rename from API/Contracts/Neutrino/Enums/AuthenticationResultCode.cs rename to src/API/Contracts/Neutrino/Enums/AuthenticationResultCode.cs diff --git a/API/Contracts/Neutrino/Requests/NeutrinoAuthenticateRequest.cs b/src/API/Contracts/Neutrino/Requests/NeutrinoAuthenticateRequest.cs similarity index 100% rename from API/Contracts/Neutrino/Requests/NeutrinoAuthenticateRequest.cs rename to src/API/Contracts/Neutrino/Requests/NeutrinoAuthenticateRequest.cs diff --git a/API/Contracts/Neutrino/Responses/NeutrinoAuthenticateResponse.cs b/src/API/Contracts/Neutrino/Responses/NeutrinoAuthenticateResponse.cs similarity index 100% rename from API/Contracts/Neutrino/Responses/NeutrinoAuthenticateResponse.cs rename to src/API/Contracts/Neutrino/Responses/NeutrinoAuthenticateResponse.cs diff --git a/API/Contracts/Neutrino/Responses/NeutrinoResultCodeResponse.cs b/src/API/Contracts/Neutrino/Responses/NeutrinoResultCodeResponse.cs similarity index 100% rename from API/Contracts/Neutrino/Responses/NeutrinoResultCodeResponse.cs rename to src/API/Contracts/Neutrino/Responses/NeutrinoResultCodeResponse.cs diff --git a/API/Contracts/Profiles/Requests/LoginRequest.cs b/src/API/Contracts/Profiles/Requests/LoginRequest.cs similarity index 100% rename from API/Contracts/Profiles/Requests/LoginRequest.cs rename to src/API/Contracts/Profiles/Requests/LoginRequest.cs diff --git a/API/Contracts/Profiles/Responses/LoginResponse.cs b/src/API/Contracts/Profiles/Responses/LoginResponse.cs similarity index 100% rename from API/Contracts/Profiles/Responses/LoginResponse.cs rename to src/API/Contracts/Profiles/Responses/LoginResponse.cs diff --git a/API/Controllers/Config/V1/ConfigController.cs b/src/API/Controllers/Config/V1/ConfigController.cs similarity index 100% rename from API/Controllers/Config/V1/ConfigController.cs rename to src/API/Controllers/Config/V1/ConfigController.cs diff --git a/API/Controllers/Neutrino/NeutrinoController.cs b/src/API/Controllers/Neutrino/NeutrinoController.cs similarity index 81% rename from API/Controllers/Neutrino/NeutrinoController.cs rename to src/API/Controllers/Neutrino/NeutrinoController.cs index 79a5e8a..8f91bac 100644 --- a/API/Controllers/Neutrino/NeutrinoController.cs +++ b/src/API/Controllers/Neutrino/NeutrinoController.cs @@ -1,21 +1,31 @@ using System.Text.Json; +using API.Configuration; using API.Contracts.Neutrino.Enums; using API.Contracts.Neutrino.Requests; using API.Contracts.Neutrino.Responses; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; using RecNet.Application.Neutrino; namespace API.Controllers.Neutrino; [Route("[controller]")] [ApiController] -public class NeutrinoController(INeutrinoAuthorizationService authorizationService) : ControllerBase +public class NeutrinoController( + INeutrinoAuthorizationService authorizationService, + IOptions options) : ControllerBase { + private readonly NeutrinoOptions _options = options.Value; + // Photon sends the request with Content-Type: text/plain instead of application/json. [Route("authorize")] public async Task> AuthorizeNeutrinoAsync( - CancellationToken ct) + [FromQuery(Name = "secret")] string? secret = null, + CancellationToken ct = default) { + if (_options.ValidateSecret && secret != _options.Secret) + return Forbid(); + using var reader = new StreamReader(Request.Body); string rawText = await reader.ReadToEndAsync(ct); diff --git a/API/Controllers/Profiles/V1/ProfilesController.cs b/src/API/Controllers/Profiles/V1/ProfilesController.cs similarity index 100% rename from API/Controllers/Profiles/V1/ProfilesController.cs rename to src/API/Controllers/Profiles/V1/ProfilesController.cs diff --git a/API/Program.cs b/src/API/Program.cs similarity index 93% rename from API/Program.cs rename to src/API/Program.cs index eb5f1b8..fb5be79 100644 --- a/API/Program.cs +++ b/src/API/Program.cs @@ -15,6 +15,11 @@ public class Program public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); + + builder.Services + .AddOptions() + .Bind(builder.Configuration.GetSection("Neutrino")) + .ValidateOnStart(); var recNetOptions = builder.Configuration.GetSection("RecNet").Get() ?? new RecNetOptions(); diff --git a/API/Properties/launchSettings.json b/src/API/Properties/launchSettings.json similarity index 100% rename from API/Properties/launchSettings.json rename to src/API/Properties/launchSettings.json diff --git a/API/appsettings.Development.json b/src/API/appsettings.Development.json similarity index 100% rename from API/appsettings.Development.json rename to src/API/appsettings.Development.json diff --git a/API/appsettings.json b/src/API/appsettings.json similarity index 100% rename from API/appsettings.json rename to src/API/appsettings.json diff --git a/AppHost/AppHost.cs b/src/AppHost/AppHost.cs similarity index 100% rename from AppHost/AppHost.cs rename to src/AppHost/AppHost.cs diff --git a/AppHost/AppHost.csproj b/src/AppHost/AppHost.csproj similarity index 100% rename from AppHost/AppHost.csproj rename to src/AppHost/AppHost.csproj diff --git a/AppHost/Properties/launchSettings.json b/src/AppHost/Properties/launchSettings.json similarity index 100% rename from AppHost/Properties/launchSettings.json rename to src/AppHost/Properties/launchSettings.json diff --git a/AppHost/appsettings.Development.json b/src/AppHost/appsettings.Development.json similarity index 100% rename from AppHost/appsettings.Development.json rename to src/AppHost/appsettings.Development.json diff --git a/AppHost/appsettings.json b/src/AppHost/appsettings.json similarity index 100% rename from AppHost/appsettings.json rename to src/AppHost/appsettings.json diff --git a/AppHost/aspire.config.json b/src/AppHost/aspire.config.json similarity index 100% rename from AppHost/aspire.config.json rename to src/AppHost/aspire.config.json diff --git a/RecNet.Application/Common/Interfaces/IConfigService.cs b/src/RecNet.Application/Common/Interfaces/IConfigService.cs similarity index 100% rename from RecNet.Application/Common/Interfaces/IConfigService.cs rename to src/RecNet.Application/Common/Interfaces/IConfigService.cs diff --git a/RecNet.Application/Common/Interfaces/IPlatformAuthValidator.cs b/src/RecNet.Application/Common/Interfaces/IPlatformAuthValidator.cs similarity index 100% rename from RecNet.Application/Common/Interfaces/IPlatformAuthValidator.cs rename to src/RecNet.Application/Common/Interfaces/IPlatformAuthValidator.cs diff --git a/RecNet.Application/Common/Interfaces/ISteamAuthService.cs b/src/RecNet.Application/Common/Interfaces/ISteamAuthService.cs similarity index 100% rename from RecNet.Application/Common/Interfaces/ISteamAuthService.cs rename to src/RecNet.Application/Common/Interfaces/ISteamAuthService.cs diff --git a/RecNet.Application/Common/Interfaces/ITokenService.cs b/src/RecNet.Application/Common/Interfaces/ITokenService.cs similarity index 100% rename from RecNet.Application/Common/Interfaces/ITokenService.cs rename to src/RecNet.Application/Common/Interfaces/ITokenService.cs diff --git a/RecNet.Application/Common/Mapping/ApplicationMappingProfile.cs b/src/RecNet.Application/Common/Mapping/ApplicationMappingProfile.cs similarity index 100% rename from RecNet.Application/Common/Mapping/ApplicationMappingProfile.cs rename to src/RecNet.Application/Common/Mapping/ApplicationMappingProfile.cs diff --git a/RecNet.Application/Common/PlatformAuth/PlatformAuthResult.cs b/src/RecNet.Application/Common/PlatformAuth/PlatformAuthResult.cs similarity index 100% rename from RecNet.Application/Common/PlatformAuth/PlatformAuthResult.cs rename to src/RecNet.Application/Common/PlatformAuth/PlatformAuthResult.cs diff --git a/RecNet.Application/Common/Security/ClaimsPrincipalExtensions.cs b/src/RecNet.Application/Common/Security/ClaimsPrincipalExtensions.cs similarity index 100% rename from RecNet.Application/Common/Security/ClaimsPrincipalExtensions.cs rename to src/RecNet.Application/Common/Security/ClaimsPrincipalExtensions.cs diff --git a/RecNet.Application/Common/Steam/SteamAuthResult.cs b/src/RecNet.Application/Common/Steam/SteamAuthResult.cs similarity index 100% rename from RecNet.Application/Common/Steam/SteamAuthResult.cs rename to src/RecNet.Application/Common/Steam/SteamAuthResult.cs diff --git a/RecNet.Application/Common/Tokens/TokenResult.cs b/src/RecNet.Application/Common/Tokens/TokenResult.cs similarity index 100% rename from RecNet.Application/Common/Tokens/TokenResult.cs rename to src/RecNet.Application/Common/Tokens/TokenResult.cs diff --git a/RecNet.Application/Common/Tokens/TokenVerifyResult.cs b/src/RecNet.Application/Common/Tokens/TokenVerifyResult.cs similarity index 100% rename from RecNet.Application/Common/Tokens/TokenVerifyResult.cs rename to src/RecNet.Application/Common/Tokens/TokenVerifyResult.cs diff --git a/RecNet.Application/DependencyInjection.cs b/src/RecNet.Application/DependencyInjection.cs similarity index 100% rename from RecNet.Application/DependencyInjection.cs rename to src/RecNet.Application/DependencyInjection.cs diff --git a/RecNet.Application/Neutrino/AuthorizeNeutrinoCommand.cs b/src/RecNet.Application/Neutrino/AuthorizeNeutrinoCommand.cs similarity index 100% rename from RecNet.Application/Neutrino/AuthorizeNeutrinoCommand.cs rename to src/RecNet.Application/Neutrino/AuthorizeNeutrinoCommand.cs diff --git a/RecNet.Application/Neutrino/INeutrinoAuthorizationService.cs b/src/RecNet.Application/Neutrino/INeutrinoAuthorizationService.cs similarity index 100% rename from RecNet.Application/Neutrino/INeutrinoAuthorizationService.cs rename to src/RecNet.Application/Neutrino/INeutrinoAuthorizationService.cs diff --git a/RecNet.Application/Neutrino/NeutrinoAuthorizationFailure.cs b/src/RecNet.Application/Neutrino/NeutrinoAuthorizationFailure.cs similarity index 100% rename from RecNet.Application/Neutrino/NeutrinoAuthorizationFailure.cs rename to src/RecNet.Application/Neutrino/NeutrinoAuthorizationFailure.cs diff --git a/RecNet.Application/Neutrino/NeutrinoAuthorizationResult.cs b/src/RecNet.Application/Neutrino/NeutrinoAuthorizationResult.cs similarity index 100% rename from RecNet.Application/Neutrino/NeutrinoAuthorizationResult.cs rename to src/RecNet.Application/Neutrino/NeutrinoAuthorizationResult.cs diff --git a/RecNet.Application/Neutrino/NeutrinoAuthorizationService.cs b/src/RecNet.Application/Neutrino/NeutrinoAuthorizationService.cs similarity index 100% rename from RecNet.Application/Neutrino/NeutrinoAuthorizationService.cs rename to src/RecNet.Application/Neutrino/NeutrinoAuthorizationService.cs diff --git a/RecNet.Application/Profiles/IProfileService.cs b/src/RecNet.Application/Profiles/IProfileService.cs similarity index 100% rename from RecNet.Application/Profiles/IProfileService.cs rename to src/RecNet.Application/Profiles/IProfileService.cs diff --git a/RecNet.Application/Profiles/LoginProfileCommand.cs b/src/RecNet.Application/Profiles/LoginProfileCommand.cs similarity index 100% rename from RecNet.Application/Profiles/LoginProfileCommand.cs rename to src/RecNet.Application/Profiles/LoginProfileCommand.cs diff --git a/RecNet.Application/Profiles/LoginProfileResult.cs b/src/RecNet.Application/Profiles/LoginProfileResult.cs similarity index 100% rename from RecNet.Application/Profiles/LoginProfileResult.cs rename to src/RecNet.Application/Profiles/LoginProfileResult.cs diff --git a/RecNet.Application/Profiles/NameGenerator.cs b/src/RecNet.Application/Profiles/NameGenerator.cs similarity index 100% rename from RecNet.Application/Profiles/NameGenerator.cs rename to src/RecNet.Application/Profiles/NameGenerator.cs diff --git a/RecNet.Application/Profiles/ProfileDto.cs b/src/RecNet.Application/Profiles/ProfileDto.cs similarity index 100% rename from RecNet.Application/Profiles/ProfileDto.cs rename to src/RecNet.Application/Profiles/ProfileDto.cs diff --git a/RecNet.Application/Profiles/ProfileService.cs b/src/RecNet.Application/Profiles/ProfileService.cs similarity index 100% rename from RecNet.Application/Profiles/ProfileService.cs rename to src/RecNet.Application/Profiles/ProfileService.cs diff --git a/RecNet.Application/RecNet.Application.csproj b/src/RecNet.Application/RecNet.Application.csproj similarity index 100% rename from RecNet.Application/RecNet.Application.csproj rename to src/RecNet.Application/RecNet.Application.csproj diff --git a/RecNet.Domain/Common/PlatformType.cs b/src/RecNet.Domain/Common/PlatformType.cs similarity index 100% rename from RecNet.Domain/Common/PlatformType.cs rename to src/RecNet.Domain/Common/PlatformType.cs diff --git a/RecNet.Domain/Configuration/IServerConfigRepository.cs b/src/RecNet.Domain/Configuration/IServerConfigRepository.cs similarity index 100% rename from RecNet.Domain/Configuration/IServerConfigRepository.cs rename to src/RecNet.Domain/Configuration/IServerConfigRepository.cs diff --git a/RecNet.Domain/Configuration/ServerConfig.cs b/src/RecNet.Domain/Configuration/ServerConfig.cs similarity index 100% rename from RecNet.Domain/Configuration/ServerConfig.cs rename to src/RecNet.Domain/Configuration/ServerConfig.cs diff --git a/RecNet.Domain/Exceptions/DomainException.cs b/src/RecNet.Domain/Exceptions/DomainException.cs similarity index 100% rename from RecNet.Domain/Exceptions/DomainException.cs rename to src/RecNet.Domain/Exceptions/DomainException.cs diff --git a/RecNet.Domain/GameVersions/GameVersion.cs b/src/RecNet.Domain/GameVersions/GameVersion.cs similarity index 100% rename from RecNet.Domain/GameVersions/GameVersion.cs rename to src/RecNet.Domain/GameVersions/GameVersion.cs diff --git a/RecNet.Domain/GameVersions/IGameVersionRepository.cs b/src/RecNet.Domain/GameVersions/IGameVersionRepository.cs similarity index 100% rename from RecNet.Domain/GameVersions/IGameVersionRepository.cs rename to src/RecNet.Domain/GameVersions/IGameVersionRepository.cs diff --git a/RecNet.Domain/Profiles/IProfileRepository.cs b/src/RecNet.Domain/Profiles/IProfileRepository.cs similarity index 100% rename from RecNet.Domain/Profiles/IProfileRepository.cs rename to src/RecNet.Domain/Profiles/IProfileRepository.cs diff --git a/RecNet.Domain/Profiles/Names/DefaultNameGenConfig.cs b/src/RecNet.Domain/Profiles/Names/DefaultNameGenConfig.cs similarity index 100% rename from RecNet.Domain/Profiles/Names/DefaultNameGenConfig.cs rename to src/RecNet.Domain/Profiles/Names/DefaultNameGenConfig.cs diff --git a/RecNet.Domain/Profiles/Names/NameGenConfig.cs b/src/RecNet.Domain/Profiles/Names/NameGenConfig.cs similarity index 100% rename from RecNet.Domain/Profiles/Names/NameGenConfig.cs rename to src/RecNet.Domain/Profiles/Names/NameGenConfig.cs diff --git a/RecNet.Domain/Profiles/Profile.cs b/src/RecNet.Domain/Profiles/Profile.cs similarity index 100% rename from RecNet.Domain/Profiles/Profile.cs rename to src/RecNet.Domain/Profiles/Profile.cs diff --git a/RecNet.Domain/RecNet.Domain.csproj b/src/RecNet.Domain/RecNet.Domain.csproj similarity index 100% rename from RecNet.Domain/RecNet.Domain.csproj rename to src/RecNet.Domain/RecNet.Domain.csproj diff --git a/RecNet.Infrastructure/DependencyInjection.cs b/src/RecNet.Infrastructure/DependencyInjection.cs similarity index 95% rename from RecNet.Infrastructure/DependencyInjection.cs rename to src/RecNet.Infrastructure/DependencyInjection.cs index 53a3f10..9ff008d 100644 --- a/RecNet.Infrastructure/DependencyInjection.cs +++ b/src/RecNet.Infrastructure/DependencyInjection.cs @@ -38,7 +38,7 @@ public static class DependencyInjection builder.Services.AddScoped(); builder.Services.AddScoped(); - builder.Services.AddScoped(); + builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/RecNet.Infrastructure/Persistence/Configurations/GameVersionConfiguration.cs b/src/RecNet.Infrastructure/Persistence/Configurations/GameVersionConfiguration.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Configurations/GameVersionConfiguration.cs rename to src/RecNet.Infrastructure/Persistence/Configurations/GameVersionConfiguration.cs diff --git a/RecNet.Infrastructure/Persistence/Configurations/ProfileConfiguration.cs b/src/RecNet.Infrastructure/Persistence/Configurations/ProfileConfiguration.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Configurations/ProfileConfiguration.cs rename to src/RecNet.Infrastructure/Persistence/Configurations/ProfileConfiguration.cs diff --git a/RecNet.Infrastructure/Persistence/Configurations/ServerConfigConfiguration.cs b/src/RecNet.Infrastructure/Persistence/Configurations/ServerConfigConfiguration.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Configurations/ServerConfigConfiguration.cs rename to src/RecNet.Infrastructure/Persistence/Configurations/ServerConfigConfiguration.cs diff --git a/RecNet.Infrastructure/Persistence/DatabaseContext.cs b/src/RecNet.Infrastructure/Persistence/DatabaseContext.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/DatabaseContext.cs rename to src/RecNet.Infrastructure/Persistence/DatabaseContext.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.Designer.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.Designer.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.Designer.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.Designer.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260618180145_Initial.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.Designer.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.Designer.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.Designer.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.Designer.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260618183916_ServerConfigs.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.Designer.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.Designer.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.Designer.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.Designer.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260619025601_ProfileToggles.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.Designer.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.Designer.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.Designer.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.Designer.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.cs b/src/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/20260619201140_GameVersion.cs diff --git a/RecNet.Infrastructure/Persistence/Migrations/DatabaseContextModelSnapshot.cs b/src/RecNet.Infrastructure/Persistence/Migrations/DatabaseContextModelSnapshot.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Migrations/DatabaseContextModelSnapshot.cs rename to src/RecNet.Infrastructure/Persistence/Migrations/DatabaseContextModelSnapshot.cs diff --git a/RecNet.Infrastructure/Persistence/Repositories/GameVersionRepository.cs b/src/RecNet.Infrastructure/Persistence/Repositories/GameVersionRepository.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Repositories/GameVersionRepository.cs rename to src/RecNet.Infrastructure/Persistence/Repositories/GameVersionRepository.cs diff --git a/RecNet.Infrastructure/Persistence/Repositories/ProfileRepository.cs b/src/RecNet.Infrastructure/Persistence/Repositories/ProfileRepository.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Repositories/ProfileRepository.cs rename to src/RecNet.Infrastructure/Persistence/Repositories/ProfileRepository.cs diff --git a/RecNet.Infrastructure/Persistence/Repositories/ServerConfigRepository.cs b/src/RecNet.Infrastructure/Persistence/Repositories/ServerConfigRepository.cs similarity index 100% rename from RecNet.Infrastructure/Persistence/Repositories/ServerConfigRepository.cs rename to src/RecNet.Infrastructure/Persistence/Repositories/ServerConfigRepository.cs diff --git a/RecNet.Infrastructure/RecNet.Infrastructure.csproj b/src/RecNet.Infrastructure/RecNet.Infrastructure.csproj similarity index 100% rename from RecNet.Infrastructure/RecNet.Infrastructure.csproj rename to src/RecNet.Infrastructure/RecNet.Infrastructure.csproj diff --git a/RecNet.Infrastructure/Services/Configuration/ConfigService.cs b/src/RecNet.Infrastructure/Services/Configuration/ConfigService.cs similarity index 100% rename from RecNet.Infrastructure/Services/Configuration/ConfigService.cs rename to src/RecNet.Infrastructure/Services/Configuration/ConfigService.cs diff --git a/RecNet.Infrastructure/Services/Meta/MetaAuthValidator.cs b/src/RecNet.Infrastructure/Services/Meta/MetaAuthValidator.cs similarity index 100% rename from RecNet.Infrastructure/Services/Meta/MetaAuthValidator.cs rename to src/RecNet.Infrastructure/Services/Meta/MetaAuthValidator.cs diff --git a/RecNet.Infrastructure/Services/Steam/SteamAuthService.cs b/src/RecNet.Infrastructure/Services/Steam/SteamAuthService.cs similarity index 100% rename from RecNet.Infrastructure/Services/Steam/SteamAuthService.cs rename to src/RecNet.Infrastructure/Services/Steam/SteamAuthService.cs diff --git a/RecNet.Infrastructure/Services/Steam/SteamAuthValidator.cs b/src/RecNet.Infrastructure/Services/Steam/SteamAuthValidator.cs similarity index 100% rename from RecNet.Infrastructure/Services/Steam/SteamAuthValidator.cs rename to src/RecNet.Infrastructure/Services/Steam/SteamAuthValidator.cs diff --git a/RecNet.Infrastructure/Services/Steam/SteamOptions.cs b/src/RecNet.Infrastructure/Services/Steam/SteamOptions.cs similarity index 100% rename from RecNet.Infrastructure/Services/Steam/SteamOptions.cs rename to src/RecNet.Infrastructure/Services/Steam/SteamOptions.cs diff --git a/RecNet.Infrastructure/Services/Tokens/JwtOptions.cs b/src/RecNet.Infrastructure/Services/Tokens/JwtOptions.cs similarity index 100% rename from RecNet.Infrastructure/Services/Tokens/JwtOptions.cs rename to src/RecNet.Infrastructure/Services/Tokens/JwtOptions.cs diff --git a/RecNet.Infrastructure/Services/Tokens/TokenService.cs b/src/RecNet.Infrastructure/Services/Tokens/TokenService.cs similarity index 100% rename from RecNet.Infrastructure/Services/Tokens/TokenService.cs rename to src/RecNet.Infrastructure/Services/Tokens/TokenService.cs diff --git a/RecNet.MigrationService/Program.cs b/src/RecNet.MigrationService/Program.cs similarity index 100% rename from RecNet.MigrationService/Program.cs rename to src/RecNet.MigrationService/Program.cs diff --git a/RecNet.MigrationService/Properties/launchSettings.json b/src/RecNet.MigrationService/Properties/launchSettings.json similarity index 100% rename from RecNet.MigrationService/Properties/launchSettings.json rename to src/RecNet.MigrationService/Properties/launchSettings.json diff --git a/RecNet.MigrationService/RecNet.MigrationService.csproj b/src/RecNet.MigrationService/RecNet.MigrationService.csproj similarity index 100% rename from RecNet.MigrationService/RecNet.MigrationService.csproj rename to src/RecNet.MigrationService/RecNet.MigrationService.csproj diff --git a/RecNet.MigrationService/Worker.cs b/src/RecNet.MigrationService/Worker.cs similarity index 100% rename from RecNet.MigrationService/Worker.cs rename to src/RecNet.MigrationService/Worker.cs diff --git a/RecNet.MigrationService/appsettings.Development.json b/src/RecNet.MigrationService/appsettings.Development.json similarity index 100% rename from RecNet.MigrationService/appsettings.Development.json rename to src/RecNet.MigrationService/appsettings.Development.json diff --git a/RecNet.MigrationService/appsettings.json b/src/RecNet.MigrationService/appsettings.json similarity index 100% rename from RecNet.MigrationService/appsettings.json rename to src/RecNet.MigrationService/appsettings.json diff --git a/RecNet.ServiceDefaults/Extensions.cs b/src/RecNet.ServiceDefaults/Extensions.cs similarity index 100% rename from RecNet.ServiceDefaults/Extensions.cs rename to src/RecNet.ServiceDefaults/Extensions.cs diff --git a/RecNet.ServiceDefaults/RecNet.ServiceDefaults.csproj b/src/RecNet.ServiceDefaults/RecNet.ServiceDefaults.csproj similarity index 100% rename from RecNet.ServiceDefaults/RecNet.ServiceDefaults.csproj rename to src/RecNet.ServiceDefaults/RecNet.ServiceDefaults.csproj