refactor: standardize project names to Musify.* and flatten layout

- Flatten nested per-repo folders into flat Musify.* projects at root
- Rename assemblies/csproj: Domain->Musify.Domain, Application->Musify.Application,
  Infrastructure->Musify.Infrastructure, WebApi->Musify.Api, Worker->Musify.Worker,
  StreamingGateway->Musify.StreamingGateway
- Rename WebApi.* namespaces to Musify.Api.*
- Update all ProjectReference paths and the solution file
- Consolidate stray per-repo dotfiles; add root .gitattributes
- Move flutter client out to _archive

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 03:32:48 +02:00
co-authored by Claude Opus 4.8
parent 8ab4d27287
commit f6d668d201
259 changed files with 82 additions and 1711 deletions
+13
View File
@@ -0,0 +1,13 @@
# Normalize line endings automatically for text files
* text=auto
# Force LF for shell scripts
*.sh text eol=lf
# Treat common binaries as binary
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.dll binary
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
namespace WebApi.Authentication;
namespace Musify.Api.Authentication;
public sealed class AuthenticationConfiguration
{
@@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.Options;
namespace WebApi.Authentication;
namespace Musify.Api.Authentication;
public static class AuthenticationExtensions
{
@@ -1,7 +1,7 @@
using System.Reflection;
using System.Security.Claims;
namespace WebApi.Authentication;
namespace Musify.Api.Authentication;
public sealed class CurrentUser : IBindableFromHttpContext<CurrentUser>
{
@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Authentication.JwtBearer;
using Musify.Application.Users.Commands;
using System.Security.Claims;
namespace WebApi.Authentication;
namespace Musify.Api.Authentication;
public sealed class JwtBearerEventsHandler(IMediator mediator, ILogger<JwtBearerEventsHandler> logger) : JwtBearerEvents
{
@@ -3,7 +3,7 @@ using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens;
using System.Security.Claims;
namespace WebApi.Authentication;
namespace Musify.Api.Authentication;
public sealed class JwtBearerOptionsSetup(IOptions<AuthenticationConfiguration> options)
: IConfigureNamedOptions<JwtBearerOptions>
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.PlayLists;
namespace Musify.Api.DataTransferObjects.PlayLists;
public record CreatePlayListRequest(
string Name,
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.PlayLists;
namespace Musify.Api.DataTransferObjects.PlayLists;
public record RequestPlayListPictureUploadRequest(
string FileType,
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.PlayLists;
namespace Musify.Api.DataTransferObjects.PlayLists;
public record UpdatePlayListRequest(
string? NewName,
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.Tracks;
namespace Musify.Api.DataTransferObjects.Tracks;
public record CreateTrackRequest(
string Title,
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.Tracks;
namespace Musify.Api.DataTransferObjects.Tracks;
public record RequestTrackUploadUrlsRequest(
string PictureFileType,
@@ -1,4 +1,4 @@
namespace WebApi.DataTransferObjects.Users;
namespace Musify.Api.DataTransferObjects.Users;
public record CreateUserRequest(
long Id,
@@ -1,12 +1,12 @@
using Mediator;
using Musify.Application.PlayLists.Commands;
using Musify.Application.PlayLists.Queries;
using WebApi.Authentication;
using WebApi.DataTransferObjects.PlayLists;
using WebApi.Extensions;
using WebApi.Filters;
using Musify.Api.Authentication;
using Musify.Api.DataTransferObjects.PlayLists;
using Musify.Api.Extensions;
using Musify.Api.Filters;
namespace WebApi.Endpoints;
namespace Musify.Api.Endpoints;
public static class PlayListEndpoints
{
@@ -1,12 +1,12 @@
using Mediator;
using Musify.Application.Tracks.Commands;
using Musify.Application.Tracks.Queries;
using WebApi.Authentication;
using WebApi.DataTransferObjects.Tracks;
using WebApi.Extensions;
using WebApi.Filters;
using Musify.Api.Authentication;
using Musify.Api.DataTransferObjects.Tracks;
using Musify.Api.Extensions;
using Musify.Api.Filters;
namespace WebApi.Endpoints;
namespace Musify.Api.Endpoints;
public static class TrackEndpoints
{
@@ -1,11 +1,11 @@
using Mediator;
using Musify.Application.Users.Commands;
using Musify.Application.Users.Queries;
using WebApi.DataTransferObjects.Users;
using WebApi.Extensions;
using WebApi.Filters;
using Musify.Api.DataTransferObjects.Users;
using Musify.Api.Extensions;
using Musify.Api.Filters;
namespace WebApi.Endpoints;
namespace Musify.Api.Endpoints;
public static class UserEndpoints
{
@@ -1,7 +1,7 @@
using Ardalis.Result;
using IResult = Microsoft.AspNetCore.Http.IResult;
namespace WebApi.Extensions;
namespace Musify.Api.Extensions;
public static class ResultHttpExtensions
{
@@ -3,12 +3,12 @@ using Musify.Infrastructure.MassTransit;
using Musify.Infrastructure.Persistence;
using Musify.Application.Configuration;
using Musify.Infrastructure.Services;
using WebApi.Authentication;
using WebApi.DataTransferObjects.PlayLists;
using WebApi.OpenApi;
using WebApi.Scalar;
using Musify.Api.Authentication;
using Musify.Api.DataTransferObjects.PlayLists;
using Musify.Api.OpenApi;
using Musify.Api.Scalar;
namespace WebApi.Extensions;
namespace Musify.Api.Extensions;
public static class ServiceCollectionExtensions
{
@@ -1,6 +1,6 @@
using FluentValidation;
namespace WebApi.Filters;
namespace Musify.Api.Filters;
public sealed class ValidationFilter<T>(IValidator<T> validator) : IEndpointFilter where T : class
{
@@ -4,6 +4,8 @@
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>Musify.Api</RootNamespace>
<AssemblyName>Musify.Api</AssemblyName>
<UserSecretsId>1c3fa41c-6f07-433b-af79-1f67fad338fd</UserSecretsId>
</PropertyGroup>
@@ -33,9 +35,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MusifyBackend\Application\Application.csproj" />
<ProjectReference Include="..\..\MusifyBackend\Domain\Domain.csproj" />
<ProjectReference Include="..\..\MusifyBackend\Infrastructure\Infrastructure.csproj" />
<ProjectReference Include="..\Musify.Application\Musify.Application.csproj" />
<ProjectReference Include="..\Musify.Domain\Musify.Domain.csproj" />
<ProjectReference Include="..\Musify.Infrastructure\Musify.Infrastructure.csproj" />
</ItemGroup>
</Project>
@@ -1,6 +1,6 @@
using Microsoft.AspNetCore.OpenApi;
namespace WebApi.OpenApi;
namespace Musify.Api.OpenApi;
public static class OpenApiExtensions
{
@@ -2,9 +2,9 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi;
using WebApi.Authentication;
using Musify.Api.Authentication;
namespace WebApi.OpenApi;
namespace Musify.Api.OpenApi;
public sealed class OpenApiOptionsSetup(IOptions<AuthenticationConfiguration> options)
: IConfigureNamedOptions<OpenApiOptions>
@@ -1,7 +1,7 @@
using Musify.Infrastructure.Observability;
using Scalar.AspNetCore;
using WebApi.Endpoints;
using WebApi.Extensions;
using Musify.Api.Endpoints;
using Musify.Api.Extensions;
var builder = WebApplication.CreateBuilder();
@@ -1,4 +1,4 @@
namespace WebApi.Scalar;
namespace Musify.Api.Scalar;
public static class ScalarExtensions
{
@@ -1,8 +1,8 @@
using Microsoft.Extensions.Options;
using Scalar.AspNetCore;
using WebApi.Authentication;
using Musify.Api.Authentication;
namespace WebApi.Scalar;
namespace Musify.Api.Scalar;
public sealed class ScalarOptionsSetup(IOptions<AuthenticationConfiguration> options)
: IConfigureOptions<ScalarOptions>
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.PlayLists;
using Musify.Api.DataTransferObjects.PlayLists;
namespace WebApi.Validators.PlayLists;
namespace Musify.Api.Validators.PlayLists;
public sealed class CreatePlayListRequestValidator : AbstractValidator<CreatePlayListRequest>
{
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.PlayLists;
using Musify.Api.DataTransferObjects.PlayLists;
namespace WebApi.Validators.PlayLists;
namespace Musify.Api.Validators.PlayLists;
public sealed class RequestPlayListPictureUploadRequestValidator : AbstractValidator<RequestPlayListPictureUploadRequest>
{
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.PlayLists;
using Musify.Api.DataTransferObjects.PlayLists;
namespace WebApi.Validators.PlayLists;
namespace Musify.Api.Validators.PlayLists;
public sealed class UpdatePlayListRequestValidator : AbstractValidator<UpdatePlayListRequest>
{
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.Tracks;
using Musify.Api.DataTransferObjects.Tracks;
namespace WebApi.Validators.Tracks;
namespace Musify.Api.Validators.Tracks;
public sealed class CreateTrackRequestValidator : AbstractValidator<CreateTrackRequest>
{
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.Tracks;
using Musify.Api.DataTransferObjects.Tracks;
namespace WebApi.Validators.Tracks;
namespace Musify.Api.Validators.Tracks;
public sealed class RequestTrackUploadUrlsRequestValidator : AbstractValidator<RequestTrackUploadUrlsRequest>
{
@@ -1,7 +1,7 @@
using FluentValidation;
using WebApi.DataTransferObjects.Users;
using Musify.Api.DataTransferObjects.Users;
namespace WebApi.Validators.Users;
namespace Musify.Api.Validators.Users;
public sealed class CreateUserRequestValidator : AbstractValidator<CreateUserRequest>
{
@@ -29,7 +29,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Domain\Domain.csproj" />
<ProjectReference Include="..\Musify.Domain\Musify.Domain.csproj" />
</ItemGroup>
</Project>

Some files were not shown because too many files have changed in this diff Show More