fix(infra): repair TransferFiles compensation + tidy MassTransit consistency

Fix (recoverability bug):
- TransferFilesToBucketActivity returned Completed() with no log, so its
  compensation could never delete the transferred files (orphaned objects on
  fault). IStorageService.TransferFilesAsync now returns the real uploaded
  keys; the activity logs them so Compensate can remove them. Also drops the
  Path.Combine key recomputation (produced backslash keys on Windows).

Consistency / DRY:
- Normalize all courier activities to internal + folder-based namespaces
  (several were public and in the flat .Activities namespace)
- Extract the duplicated exponential retry into UseStandardRetry
- Unify endpoint-name logic into a single EndpointHelper (remove the parallel
  MassTransitEndpointNames helper)

Build: 0 warnings, 0 errors.
This commit is contained in:
2026-07-05 04:58:27 +02:00
parent 4386d4eb7e
commit b3ff1b6516
15 changed files with 49 additions and 71 deletions
@@ -6,7 +6,7 @@ using Musify.Domain.Entities;
using Musify.Domain.ValueObjects;
using Musify.Infrastructure.MassTransit.Arguments;
namespace Musify.Infrastructure.MassTransit.Activities
namespace Musify.Infrastructure.MassTransit.Activities.Audio
{
internal class GenerateAudioWorkflowPathsActivity(
IDatabase database,
@@ -7,7 +7,7 @@ using Musify.Domain.ValueObjects;
using Musify.Infrastructure.MassTransit.Arguments;
using Musify.Infrastructure.MassTransit.Logs;
namespace Musify.Infrastructure.MassTransit.Activities
namespace Musify.Infrastructure.MassTransit.Activities.Audio
{
internal class TranscodeAudioActivity(
IDatabase database,