diff --git a/backend/Core/Musify.Application/Albums/Responses/AlbumsSearchResponse.cs b/backend/Core/Musify.Application/Albums/Responses/AlbumsSearchResponse.cs index f6b6f66..ea5c64c 100644 --- a/backend/Core/Musify.Application/Albums/Responses/AlbumsSearchResponse.cs +++ b/backend/Core/Musify.Application/Albums/Responses/AlbumsSearchResponse.cs @@ -1,6 +1,6 @@ namespace Musify.Application.Albums.Responses { - /// A page of the user's catalog albums (their own). + public record AlbumsSearchResponse( IReadOnlyList Items, int PageNumber, diff --git a/backend/Core/Musify.Application/Configuration/GetPlaybackPublicConfig.cs b/backend/Core/Musify.Application/Configuration/GetPlaybackPublicConfig.cs index 7e64167..8b96121 100644 --- a/backend/Core/Musify.Application/Configuration/GetPlaybackPublicConfig.cs +++ b/backend/Core/Musify.Application/Configuration/GetPlaybackPublicConfig.cs @@ -3,8 +3,7 @@ using Musify.Application.Configuration.Responses; namespace Musify.Application.Configuration { - /// Reads the parts of that are safe to expose to an - /// unauthenticated client, so it can decide whether to gate the app behind sign-in at all. + public record GetPlaybackPublicConfigQuery : IQuery; public class GetPlaybackPublicConfigQueryHandler(PlaybackConfiguration playbackConfiguration) diff --git a/backend/Core/Musify.Application/Configuration/PlaybackConfiguration.cs b/backend/Core/Musify.Application/Configuration/PlaybackConfiguration.cs index a6c5219..90ac7aa 100644 --- a/backend/Core/Musify.Application/Configuration/PlaybackConfiguration.cs +++ b/backend/Core/Musify.Application/Configuration/PlaybackConfiguration.cs @@ -2,28 +2,16 @@ using System.ComponentModel.DataAnnotations; namespace Musify.Application.Configuration { - /// Controls whether listeners without a session can stream music at all, and if so, - /// how much of a track they get to hear before being cut off (a Spotify-style preview). + public sealed class PlaybackConfiguration { public const string SectionName = "Playback"; - /// When false (the default), every stream endpoint requires a signed-in user, exactly - /// like before this setting existed. When true, an anonymous request is issued a stream ticket - /// too, capped by if that is greater than zero. public bool AllowAnonymousListening { get; set; } - /// How many seconds of a track an anonymous listener may hear, enforced by the - /// Streaming Gateway clamping the byte range it will serve for that ticket. Zero (the default) - /// means no cap: anonymous listeners hear the full track, same as a signed-in user. Ignored - /// when is false. [Range(0, 3600)] public int AnonymousFragmentSeconds { get; set; } - /// Bytes per second of the transcoded audio, used to turn - /// into a byte cap for the stream ticket. Defaults to the app's own transcoder output (128 kbps - /// AAC, AudioTranscoder:Ffmpeg:AudioBitrate) — update this alongside that setting if it - /// ever changes, since the two aren't wired together. [Range(1, int.MaxValue)] public int EstimatedAudioBytesPerSecond { get; set; } = 16_000; } diff --git a/backend/Core/Musify.Application/Configuration/Responses/PlaybackPublicConfigResponse.cs b/backend/Core/Musify.Application/Configuration/Responses/PlaybackPublicConfigResponse.cs index acdd696..90a92b9 100644 --- a/backend/Core/Musify.Application/Configuration/Responses/PlaybackPublicConfigResponse.cs +++ b/backend/Core/Musify.Application/Configuration/Responses/PlaybackPublicConfigResponse.cs @@ -1,7 +1,5 @@ namespace Musify.Application.Configuration.Responses { - /// Whether listeners without a session can stream music at all. - /// How many seconds of a track an anonymous listener may hear. - /// Zero means no cap. Meaningless when is false. + public record PlaybackPublicConfigResponse(bool AllowAnonymousListening, int AnonymousFragmentSeconds); } diff --git a/backend/Core/Musify.Application/Contracts/IStreamTicketService.cs b/backend/Core/Musify.Application/Contracts/IStreamTicketService.cs index 083931c..26925ac 100644 --- a/backend/Core/Musify.Application/Contracts/IStreamTicketService.cs +++ b/backend/Core/Musify.Application/Contracts/IStreamTicketService.cs @@ -2,11 +2,7 @@ namespace Musify.Application.Contracts { public interface IStreamTicketService { - /// Null for an anonymous listener — the ticket is issued without a - /// sub claim. - /// The storage key (prefix) the ticket authorizes reading from. - /// When set, the Streaming Gateway clamps the byte range it will serve - /// for this ticket to [0, maxBytes) — used for the anonymous preview fragment. + StreamTicket IssueTicket(long? userId, string keyPrefix, long? maxBytes = null); } diff --git a/backend/Core/Musify.Application/Mixes/GenerateMixesForUser.cs b/backend/Core/Musify.Application/Mixes/GenerateMixesForUser.cs index bff28f7..0aad625 100644 --- a/backend/Core/Musify.Application/Mixes/GenerateMixesForUser.cs +++ b/backend/Core/Musify.Application/Mixes/GenerateMixesForUser.cs @@ -12,11 +12,6 @@ namespace Musify.Application.Mixes public record GenerateMixesForUserCommand(long UserId) : ICommand>; - /// Builds each user's mixes purely from their own library: a "Descubrimiento" mix of - /// tracks they own but haven't listened to yet, and a "Tu mezcla diaria" mix blending recently - /// listened tracks with unheard ones. There's no artist/genre metadata for local uploads today, - /// so mixes can't be seeded by "similar artist" the way the old YouTube-backed discovery did — - /// once a tagging system exists, this is the place to seed mixes by tag instead. public class GenerateMixesForUserCommandHandler( IDatabase database, MixConfiguration mixConfiguration, diff --git a/backend/Core/Musify.Application/Mixes/MixItemMapper.cs b/backend/Core/Musify.Application/Mixes/MixItemMapper.cs index 66cafcb..10b533b 100644 --- a/backend/Core/Musify.Application/Mixes/MixItemMapper.cs +++ b/backend/Core/Musify.Application/Mixes/MixItemMapper.cs @@ -5,9 +5,7 @@ using Musify.Domain.Entities; namespace Musify.Application.Mixes { - /// Resolves MixItem rows to their MixItemApplicationResponse shape via a single batched - /// track lookup, instead of an EF Include chain deep enough (Mix -> Items -> Track -> Owner) to - /// force a correlated-subquery translation some providers (SQLite, notably) can't produce. + internal static class MixItemMapper { public static async Task> ToResponsesAsync( diff --git a/backend/Core/Musify.Application/Serialization/LongAsStringConverter.cs b/backend/Core/Musify.Application/Serialization/LongAsStringConverter.cs index 0dd3526..a0d7642 100644 --- a/backend/Core/Musify.Application/Serialization/LongAsStringConverter.cs +++ b/backend/Core/Musify.Application/Serialization/LongAsStringConverter.cs @@ -4,13 +4,6 @@ using System.Text.Json.Serialization; namespace Musify.Application.Serialization; -// Zitadel-issued user ids routinely exceed Number.MAX_SAFE_INTEGER (2^53-1). -// Serialized as a raw JSON number, the frontend's JSON.parse silently rounds -// them to the nearest representable double, corrupting the id (it becomes a -// different, sometimes valid, user id). Applied via [property: JsonConverter(...)] -// on the specific id-shaped `long`/`long?` response properties (not globally — -// unrelated `long` fields like byte sizes must stay numbers), this serializes -// them as a JSON string instead, which round-trips exactly. public sealed class LongAsStringConverter : JsonConverter { public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => diff --git a/backend/Core/Musify.Application/Services/TrackStreamIssuer.cs b/backend/Core/Musify.Application/Services/TrackStreamIssuer.cs index 3ceaab2..91031b9 100644 --- a/backend/Core/Musify.Application/Services/TrackStreamIssuer.cs +++ b/backend/Core/Musify.Application/Services/TrackStreamIssuer.cs @@ -30,8 +30,6 @@ public sealed class TrackStreamIssuer( folderPath, streamGatewayConfiguration.AudioFileName); - // Anonymous listeners have no User row to satisfy ListeningHistory's foreign key against, and - // their plays aren't "history" anyone can look back on anyway, so there's nothing to record. if (userId != null) { var newListeningHistory = new ListeningHistory diff --git a/backend/Core/Musify.Application/Tracks/GetTrackStream.cs b/backend/Core/Musify.Application/Tracks/GetTrackStream.cs index ca0b7da..1135863 100644 --- a/backend/Core/Musify.Application/Tracks/GetTrackStream.cs +++ b/backend/Core/Musify.Application/Tracks/GetTrackStream.cs @@ -9,8 +9,7 @@ using Musify.Application.Tracks.Responses; namespace Musify.Application.Tracks { - /// Null for an anonymous request — allowed only when - /// is enabled. + public record GetTrackStreamQuery(Guid TrackId, long? UserId) : IQuery>; diff --git a/backend/Core/Musify.Application/Tracks/Responses/TracksSearchResponse.cs b/backend/Core/Musify.Application/Tracks/Responses/TracksSearchResponse.cs index caee538..4fddfb6 100644 --- a/backend/Core/Musify.Application/Tracks/Responses/TracksSearchResponse.cs +++ b/backend/Core/Musify.Application/Tracks/Responses/TracksSearchResponse.cs @@ -1,6 +1,6 @@ namespace Musify.Application.Tracks.Responses { - /// A page of the user's catalog tracks (their own uploads). + public record TracksSearchResponse( IReadOnlyList Items, int PageNumber, diff --git a/backend/Core/Musify.Domain/ValueObjects/GenreCompatibility.cs b/backend/Core/Musify.Domain/ValueObjects/GenreCompatibility.cs index 7d6e0e6..8b8710c 100644 --- a/backend/Core/Musify.Domain/ValueObjects/GenreCompatibility.cs +++ b/backend/Core/Musify.Domain/ValueObjects/GenreCompatibility.cs @@ -1,9 +1,6 @@ namespace Musify.Domain.ValueObjects { - /// - /// Encodes which genre pairs are mutually exclusive on a single track (e.g. a track cannot - /// be tagged as both Classical and Metal at the same time). - /// + public static class GenreCompatibility { private static readonly HashSet<(Genre, Genre)> IncompatiblePairs = BuildIncompatiblePairs(); @@ -31,9 +28,6 @@ namespace Musify.Domain.ValueObjects public static bool AreCompatible(Genre a, Genre b) => a == b || !IncompatiblePairs.Contains((a, b)); - /// - /// Returns every mutually exclusive genre pair found within the given set of tags. - /// public static IReadOnlyCollection<(Genre First, Genre Second)> FindConflicts(IEnumerable tags) { var distinctTags = tags.Distinct().ToList(); diff --git a/backend/Core/Musify.Infrastructure/Persistence/AuditableEntityInterceptor.cs b/backend/Core/Musify.Infrastructure/Persistence/AuditableEntityInterceptor.cs index b5b9bdf..c1732d2 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/AuditableEntityInterceptor.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/AuditableEntityInterceptor.cs @@ -24,11 +24,6 @@ namespace Musify.Infrastructure.Persistence if (context == null) return; - // SavingChanges(Async) fires before EF's own automatic change detection for this - // save, so entities modified through plain property assignment (query, then set a - // property, then SaveChanges — the normal case) still show as Unchanged here unless - // something already forced detection. Force it explicitly, otherwise UpdatedAt is - // never bumped on a real update, only on inserts. context.ChangeTracker.DetectChanges(); var now = DateTime.UtcNow; diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.Designer.cs index 28bd9da..ab1b33a 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260531234306_AddUserProfilePictureUrl")] partial class AddUserProfilePictureUrl { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.cs index 5342474..06b0071 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260531234306_AddUserProfilePictureUrl.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddUserProfilePictureUrl : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -18,7 +18,6 @@ namespace Musify.Infrastructure.Persistence.Migrations nullable: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.Designer.cs index 279f318..6974cbe 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260601195757_RenameTimestampsAndAudit")] partial class RenameTimestampsAndAudit { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.cs index 540250e..d049bbd 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260601195757_RenameTimestampsAndAudit.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class RenameTimestampsAndAudit : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.RenameColumn( @@ -31,7 +31,6 @@ namespace Musify.Infrastructure.Persistence.Migrations newName: "CreatedAt"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.RenameColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.Designer.cs index a9244d0..21eb9d0 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260705123932_AddTrackProcessingStateSaga")] partial class AddTrackProcessingStateSaga { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.cs index 1da5f70..78c010d 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705123932_AddTrackProcessingStateSaga.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackProcessingStateSaga : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -27,7 +27,6 @@ namespace Musify.Infrastructure.Persistence.Migrations }); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.Designer.cs index 84db2e7..4441787 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260705124807_AddTrackProcessingSagaKeys")] partial class AddTrackProcessingSagaKeys { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.cs index f1fe6c5..8f72be4 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705124807_AddTrackProcessingSagaKeys.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackProcessingSagaKeys : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -29,7 +29,6 @@ namespace Musify.Infrastructure.Persistence.Migrations nullable: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.Designer.cs index 1a2ac56..45eab6e 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260705125356_AddPlayListProcessingStateSaga")] partial class AddPlayListProcessingStateSaga { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.cs index cbed3e0..6945174 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260705125356_AddPlayListProcessingStateSaga.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddPlayListProcessingStateSaga : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -27,7 +27,6 @@ namespace Musify.Infrastructure.Persistence.Migrations }); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.Designer.cs index 2a64069..5671bab 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260713234847_AddListeningHistory")] partial class AddListeningHistory { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.cs index cf43852..dcb70f1 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260713234847_AddListeningHistory.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddListeningHistory : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -47,7 +47,6 @@ namespace Musify.Infrastructure.Persistence.Migrations column: "UserId"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.Designer.cs index e55e31e..d2ac3b8 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260714114537_AddTrackDuration")] partial class AddTrackDuration { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.cs index ae61d8c..5f973c6 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260714114537_AddTrackDuration.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackDuration : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -18,7 +18,6 @@ namespace Musify.Infrastructure.Persistence.Migrations defaultValue: 0); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.Designer.cs index 4f9c838..97d0c1a 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260715193951_AddTrackSourceArtistExternalId")] partial class AddTrackSourceArtistExternalId { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.cs index 9294b35..e7a9e0f 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715193951_AddTrackSourceArtistExternalId.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackSourceArtistExternalId : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -41,7 +41,6 @@ namespace Musify.Infrastructure.Persistence.Migrations filter: "\"ExternalId\" <> ''"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.Designer.cs index 2aae255..24a665d 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260715230836_AddTrackDownloadRequested")] partial class AddTrackDownloadRequested { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.cs index c237545..2abef22 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260715230836_AddTrackDownloadRequested.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackDownloadRequested : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -18,7 +18,6 @@ namespace Musify.Infrastructure.Persistence.Migrations defaultValue: false); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.Designer.cs index aae47ac..3bcaab0 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260716214442_MakeTrackMediaAndExternalIdNullable")] partial class MakeTrackMediaAndExternalIdNullable { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.cs index b932763..8d45113 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214442_MakeTrackMediaAndExternalIdNullable.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class MakeTrackMediaAndExternalIdNullable : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( @@ -66,7 +66,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.Designer.cs index d7c4121..6a999d6 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260716214752_AddArtistsAndTrackOwnership")] partial class AddArtistsAndTrackOwnership { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.cs index 2565e4e..70eaaf7 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716214752_AddArtistsAndTrackOwnership.cs @@ -4,10 +4,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddArtistsAndTrackOwnership : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -154,7 +154,6 @@ namespace Musify.Infrastructure.Persistence.Migrations sql: "(\"OwnerUserId\" IS NOT NULL) = (\"Source\" = 0)"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.Designer.cs index ef9bffc..3b27cd9 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260716220047_DropTrackArtistColumn")] partial class DropTrackArtistColumn { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.cs index e592cd9..046837a 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260716220047_DropTrackArtistColumn.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class DropTrackArtistColumn : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( @@ -15,7 +15,6 @@ namespace Musify.Infrastructure.Persistence.Migrations table: "Tracks"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.Designer.cs index 73a8004..2174b94 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260717164632_MovePlayListPicturesToOwnedType")] partial class MovePlayListPicturesToOwnedType { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.cs index 55b6c9f..d368789 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164632_MovePlayListPicturesToOwnedType.cs @@ -4,16 +4,15 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class MovePlayListPicturesToOwnedType : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { } - /// protected override void Down(MigrationBuilder migrationBuilder) { diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.Designer.cs index d44bde1..f14319d 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260717164812_RenameTrackDurationToDurationSeconds")] partial class RenameTrackDurationToDurationSeconds { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.cs index d652ae4..e62cbc7 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717164812_RenameTrackDurationToDurationSeconds.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class RenameTrackDurationToDurationSeconds : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.RenameColumn( @@ -16,7 +16,6 @@ namespace Musify.Infrastructure.Persistence.Migrations newName: "DurationSeconds"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.RenameColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.Designer.cs index c828de5..5598bd6 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260717172507_SplitTrackIntoLocalAndExternal")] partial class SplitTrackIntoLocalAndExternal { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.cs index 277bb48..2aa2dce 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717172507_SplitTrackIntoLocalAndExternal.cs @@ -4,10 +4,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class SplitTrackIntoLocalAndExternal : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( @@ -156,7 +156,6 @@ namespace Musify.Infrastructure.Persistence.Migrations oldNullable: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.Designer.cs index 4fe2553..903f4d1 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260717223358_MakePlayListPicturesNullable")] partial class MakePlayListPicturesNullable { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.cs index c007573..62e12b9 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260717223358_MakePlayListPicturesNullable.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class MakePlayListPicturesNullable : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( @@ -51,7 +51,6 @@ namespace Musify.Infrastructure.Persistence.Migrations oldMaxLength: 64); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.Designer.cs index f9287d5..a0bf78b 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260720180629_WidenTrackTitle")] partial class WidenTrackTitle { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.cs index 07e4108..2c5e0c7 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180629_WidenTrackTitle.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class WidenTrackTitle : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( @@ -31,7 +31,6 @@ namespace Musify.Infrastructure.Persistence.Migrations oldMaxLength: 50); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.Designer.cs index ce5f168..3575cbb 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260720180747_AddAlbums")] partial class AddAlbums { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.cs index c9a4c1b..664a1f2 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720180747_AddAlbums.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddAlbums : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -100,7 +100,6 @@ namespace Musify.Infrastructure.Persistence.Migrations column: "OwnerUserId"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.Designer.cs index 557f179..352ae90 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260720184656_AddUserAlbumExternalId")] partial class AddUserAlbumExternalId { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.cs index 1833cf6..32c0e4f 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260720184656_AddUserAlbumExternalId.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddUserAlbumExternalId : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( @@ -28,7 +28,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.Designer.cs index d1d84af..04aa6e2 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260721155102_AddMixes")] partial class AddMixes { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.cs index 5b53094..f243468 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721155102_AddMixes.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddMixes : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -83,7 +83,6 @@ namespace Musify.Infrastructure.Persistence.Migrations column: "TrackId"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.Designer.cs index 6e7acaa..184595e 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260721161653_RemoveUserAlbumExternalId")] partial class RemoveUserAlbumExternalId { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.cs index 9be1118..8ab867f 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721161653_RemoveUserAlbumExternalId.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class RemoveUserAlbumExternalId : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( @@ -24,7 +24,6 @@ namespace Musify.Infrastructure.Persistence.Migrations column: "OwnerUserId"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.Designer.cs index becdb4a..c6f8c69 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260721162102_DropMixGeneratedOn")] partial class DropMixGeneratedOn { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.cs index 7b35949..ef315d1 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721162102_DropMixGeneratedOn.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class DropMixGeneratedOn : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( @@ -15,7 +15,6 @@ namespace Musify.Infrastructure.Persistence.Migrations table: "Mixes"); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.Designer.cs index c24f03f..839cd88 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260721190735_MakePlayListDescriptionOptional")] partial class MakePlayListDescriptionOptional { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.cs index c3c1c78..f494ead 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260721190735_MakePlayListDescriptionOptional.cs @@ -4,10 +4,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class MakePlayListDescriptionOptional : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( @@ -27,7 +27,6 @@ namespace Musify.Infrastructure.Persistence.Migrations """); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.Designer.cs index 2105147..8f61078 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260724170051_DurationAsDouble")] partial class DurationAsDouble { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.cs index f5817fd..2429024 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724170051_DurationAsDouble.cs @@ -4,16 +4,15 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class DurationAsDouble : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { } - /// protected override void Down(MigrationBuilder migrationBuilder) { diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.Designer.cs index 20abf17..67a342f 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260724181012_AddExternalAlbums")] partial class AddExternalAlbums { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.cs index 05d396a..cfe5fef 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724181012_AddExternalAlbums.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddExternalAlbums : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -36,7 +36,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.Designer.cs index c002621..021c586 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260724182659_AddExternalAlbumThumbnail")] partial class AddExternalAlbumThumbnail { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.cs index 4d3edcb..8499835 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260724182659_AddExternalAlbumThumbnail.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddExternalAlbumThumbnail : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -18,7 +18,6 @@ namespace Musify.Infrastructure.Persistence.Migrations nullable: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.Designer.cs index 1e406b9..61d1c9d 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260910125022_AddAlbumProcessingStateSaga")] partial class AddAlbumProcessingStateSaga { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.cs index 5776fc4..065bd46 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260910125022_AddAlbumProcessingStateSaga.cs @@ -5,10 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddAlbumProcessingStateSaga : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -28,7 +28,6 @@ namespace Musify.Infrastructure.Persistence.Migrations }); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.Designer.cs index 2082406..6e5fe77 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260914144913_AddPlayListVisibility")] partial class AddPlayListVisibility { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.cs index 8e2bc87..3ea6295 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914144913_AddPlayListVisibility.cs @@ -4,10 +4,10 @@ namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddPlayListVisibility : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( @@ -18,7 +18,6 @@ namespace Musify.Infrastructure.Persistence.Migrations defaultValue: 0); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.Designer.cs index 40e0fdf..7420ec1 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260914150045_AddTrackLikes")] partial class AddTrackLikes { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.cs index 609464e..64ae90d 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914150045_AddTrackLikes.cs @@ -5,10 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackLikes : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -49,7 +49,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.Designer.cs index 9db303d..62cb1f0 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260914151900_AddUserFollows")] partial class AddUserFollows { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.cs index afbf5f3..5d9a85a 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260914151900_AddUserFollows.cs @@ -5,10 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddUserFollows : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -49,7 +49,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.Designer.cs index 7fb80d2..bca8584 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -15,7 +15,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260915165436_RemoveYouTubeIntegration")] partial class RemoveYouTubeIntegration { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.cs index e5c3c54..a496709 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260915165436_RemoveYouTubeIntegration.cs @@ -5,25 +5,16 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class RemoveYouTubeIntegration : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { - // Data cleanup first, while the External*/Local*/UserAlbums tables (and the loose - // MixItem columns) still exist to query/cascade from. Deleting the base Tracks/Albums - // rows for anything that only ever existed as an ExternalTrack/ExternalAlbum cascades - // (FKs are ON DELETE CASCADE) to their own ExternalTracks/ExternalAlbums row, TrackArtist, - // PlayListHasTrack, AlbumHasTrack, TrackLike, ListeningHistory, UserHasTrack and MixItems - // rows that referenced them — this is deliberately lossy: those rows only existed to back - // the YouTube integration being removed here. + migrationBuilder.Sql("""DELETE FROM "Tracks" WHERE "Id" IN (SELECT "Id" FROM "ExternalTracks");"""); migrationBuilder.Sql("""DELETE FROM "Albums" WHERE "Id" IN (SELECT "Id" FROM "ExternalAlbums");"""); - // Live YouTube search hits that were seeded into a mix but never materialized into a - // real track (MixItemSource.YouTube, no TrackId) — MixItem.TrackId is about to become - // required, so these rows can't be kept. migrationBuilder.Sql("""DELETE FROM "MixItems" WHERE "TrackId" IS NULL;"""); migrationBuilder.AddColumn( @@ -132,7 +123,6 @@ namespace Musify.Infrastructure.Persistence.Migrations onDelete: ReferentialAction.Restrict); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.Designer.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.Designer.cs index aedc4e8..b6ee299 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.Designer.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.Designer.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -16,7 +16,7 @@ namespace Musify.Infrastructure.Persistence.Migrations [Migration("20260916153700_AddTrackTags")] partial class AddTrackTags { - /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.cs index 73b7a54..104b260 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/20260916153700_AddTrackTags.cs @@ -6,10 +6,10 @@ using Musify.Domain.ValueObjects; namespace Musify.Infrastructure.Persistence.Migrations { - /// + public partial class AddTrackTags : Migration { - /// + protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() @@ -41,7 +41,6 @@ namespace Musify.Infrastructure.Persistence.Migrations unique: true); } - /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/backend/Core/Musify.Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs b/backend/Core/Musify.Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs index f5767e5..91f3231 100644 --- a/backend/Core/Musify.Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs +++ b/backend/Core/Musify.Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs @@ -1,4 +1,4 @@ -// + using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; diff --git a/backend/Hosts/Musify.Api/Authentication/JwtBearerEventsHandler.cs b/backend/Hosts/Musify.Api/Authentication/JwtBearerEventsHandler.cs index dcbc302..b8cd402 100644 --- a/backend/Hosts/Musify.Api/Authentication/JwtBearerEventsHandler.cs +++ b/backend/Hosts/Musify.Api/Authentication/JwtBearerEventsHandler.cs @@ -41,13 +41,8 @@ public sealed class JwtBearerEventsHandler( if (cache.TryGetValue(cacheKey, out _)) return; - // Access tokens from the IdP are minimal (just sub/scope/aud) — profile attributes live on - // the userinfo endpoint, so ask for them there instead of relying on token claims alone. var userInfo = await FetchUserInfoAsync(tokenValidatedContext, tokenValidatedContext.HttpContext.RequestAborted); - // Zitadel also issues short-form JWT claim names ("name", "given_name", "family_name", "email"), - // but the newer JsonWebTokenHandler (default since .NET 8) no longer auto-maps those to the - // legacy ClaimTypes.* URIs the way JwtSecurityTokenHandler used to — so check both forms too. var username = userInfo?.Name ?? userInfo?.PreferredUsername ?? principal.FindFirstValue("name") diff --git a/backend/Hosts/Musify.Api/OpenApi/OpenApiOptionsSetup.cs b/backend/Hosts/Musify.Api/OpenApi/OpenApiOptionsSetup.cs index a6c75df..ed9a5af 100644 --- a/backend/Hosts/Musify.Api/OpenApi/OpenApiOptionsSetup.cs +++ b/backend/Hosts/Musify.Api/OpenApi/OpenApiOptionsSetup.cs @@ -39,13 +39,6 @@ public sealed class OpenApiOptionsSetup(IOptions op return Task.CompletedTask; } ); - // Properties annotated with [JsonConverter(typeof(LongAsStringConverter))] (id-shaped - // `long` fields — see that converter for why) serialize as a JSON string, but the - // schema generator still reflects the declared CLR `long`/`long?` type as a bare - // int64 number. Reconcile the declared schema so generated clients (openapi-typescript) - // type exactly those properties as `string`, matching what actually goes over the wire — - // scoped to the attribute, not the CLR type, so unrelated `long` fields (byte sizes, …) - // are left alone. options.AddSchemaTransformer((schema, context, _) => { if (context.JsonPropertyInfo?.CustomConverter is LongAsStringConverter or NullableLongAsStringConverter) diff --git a/backend/Hosts/Musify.Api/Program.cs b/backend/Hosts/Musify.Api/Program.cs index 524ed83..e31b5e0 100644 --- a/backend/Hosts/Musify.Api/Program.cs +++ b/backend/Hosts/Musify.Api/Program.cs @@ -48,6 +48,4 @@ app app.Run(); -// Makes the top-level-statements Program class public so -// WebApplicationFactory (Musify.Api.Tests) can see it. public partial class Program; \ No newline at end of file diff --git a/backend/Hosts/Musify.StreamingGateway/Authentication/TicketValidator.cs b/backend/Hosts/Musify.StreamingGateway/Authentication/TicketValidator.cs index 8e0689f..b2d3a59 100644 --- a/backend/Hosts/Musify.StreamingGateway/Authentication/TicketValidator.cs +++ b/backend/Hosts/Musify.StreamingGateway/Authentication/TicketValidator.cs @@ -6,10 +6,6 @@ using Musify.StreamingGateway.Configuration; namespace Musify.StreamingGateway.Authentication; -/// The storage key prefix the ticket authorizes reading from. Empty means the -/// ticket was missing, malformed, expired, or otherwise invalid. -/// When set, the caller is limited to the first MaxBytes bytes of the -/// object — the anonymous preview fragment cap carried by the maxBytes claim. public sealed record TicketValidationResult(string Prefix, long? MaxBytes) { public static readonly TicketValidationResult Invalid = new(string.Empty, null); diff --git a/backend/Hosts/Musify.StreamingGateway/Middleware/TicketValidationMiddleware.cs b/backend/Hosts/Musify.StreamingGateway/Middleware/TicketValidationMiddleware.cs index 35047ec..94b9644 100644 --- a/backend/Hosts/Musify.StreamingGateway/Middleware/TicketValidationMiddleware.cs +++ b/backend/Hosts/Musify.StreamingGateway/Middleware/TicketValidationMiddleware.cs @@ -72,12 +72,6 @@ public sealed class TicketValidationMiddleware( await next(context); } - /// Rewrites the request's Range header so nothing past - /// is ever asked of the filer — this is what actually enforces the anonymous preview length, - /// downstream of the ticket carrying that cap. A request with no Range header (a plain, - /// whole-file GET) gets one synthesized, so the filer always responds with a bounded 206 instead of - /// streaming the full object. Returns false when the requested range starts at or past the cap, in - /// which case the caller should answer 416 directly instead of proxying anything. private static bool TryClampRange(HttpContext context, long maxBytes) { var rangeHeader = context.Request.Headers.Range; diff --git a/backend/Hosts/Musify.Worker/Program.cs b/backend/Hosts/Musify.Worker/Program.cs index b85137a..d86b01f 100644 --- a/backend/Hosts/Musify.Worker/Program.cs +++ b/backend/Hosts/Musify.Worker/Program.cs @@ -7,11 +7,6 @@ using Musify.Infrastructure.Services; var builder = Host.CreateApplicationBuilder(); -// Registering Mediator pulls in every handler in Musify.Application, including ones -// (e.g. CreatePlayList, CreateTrack) that depend on IEventBus, which the Worker never -// registers because it only consumes events, it never publishes them. Only the handlers -// this process actually dispatches (GenerateMixesForUserCommand) are ever constructed, -// so the default eager validate-on-build check is too strict for this host. builder.ConfigureContainer(new DefaultServiceProviderFactory(new ServiceProviderOptions { ValidateOnBuild = false, diff --git a/web-player/scripts/check-tokens.mjs b/web-player/scripts/check-tokens.mjs index f87edf6..3c8349f 100644 --- a/web-player/scripts/check-tokens.mjs +++ b/web-player/scripts/check-tokens.mjs @@ -1,21 +1,4 @@ #!/usr/bin/env node -// Guardrail contra la reintroducción de lo que P0-P14 limpió -// (ver docs/frontend-refactor-plan.md, secciones B.4 y P14). Escanea -// src/**/*.svelte en busca de valores arbitrarios y utilidades de Tailwind -// que deberían ser tokens del sistema de diseño (src/routes/layout.css). -// -// Gaps conocidos, no cubiertos aquí a propósito: -// - `strokeWidth={n}` en iconos: hay ~13 valores distintos repartidos por -// casi todos los componentes. Migrarlo a las recetas `stroke-*` requeriría -// verificar que lucide-svelte respeta `stroke-width` por CSS en vez del -// atributo del componente, y no hay forma de comprobarlo visualmente en -// esta sesión (sin Docker). Se deja fuera para no arriesgar una regresión -// silenciosa en todos los iconos de la app. -// - `text-base` sin receta: solo queda un caso real (Queue.svelte, título -// "En cola", 16px) sin equivalente en la escala text-display-*. Crear una -// receta nueva para un único consumidor sería una abstracción prematura; -// se acepta como excepción documentada en vez de forzarlo a un tamaño que -// no le corresponde. import { readFileSync } from 'node:fs'; import { execSync } from 'node:child_process'; @@ -24,7 +7,6 @@ const files = execSync('git ls-files "src/**/*.svelte"', { encoding: 'utf8' }) .split('\n') .filter(Boolean); -// B.4 — arbitrarios permitidos tras el refactor. const ARBITRARY_WHITELIST = [ /^text-\[clamp\([^)]+\)\]$/, // tipografía fluida (login, Logo) /^leading-\[[\d.]+\]$/, // leading ajustado del display gigante de login @@ -33,13 +15,9 @@ const ARBITRARY_WHITELIST = [ /^my-\[\d+d?vh\]$/, // +error.svelte: centrado vertical de página de error /^py-\[\d+d?vh\]$/, // Explorar: centrado vertical de "sin resultados" /^transition-\[filter\]$/, // Explorar: genre-tile hover - /^bg-\[image:var\(--mf-[\w-]+\)\]$/ // gradientes dinámicos por tema (Artwork, Logo, liked) + /^bg-\[image:var\(--mf-[\w-]+\)\]$/ ]; -// Radios semánticos de B.1.1 — cualquier otro rounded-* de Tailwind (o el -// `rounded` a secas de fábrica) es una regresión. `rounded-full` y los -// tokens (`rounded-tag/thumb/control/art/art-lg/panel/panel-lg`) están bien: -// el lookahead exige que no venga más texto de clase pegado con `-`. const RAW_ROUNDED = /\brounded(-(none|xs|sm|md|lg|xl|2xl|3xl))?(?![\w-])/g; const PAIRED_HW = /\b(?:([a-z0-9-]+:))?h-([\d.]+)\s+\1w-\2\b/g; diff --git a/web-player/src/lib/api/schema.d.ts b/web-player/src/lib/api/schema.d.ts index aa1cc9a..3350e30 100644 --- a/web-player/src/lib/api/schema.d.ts +++ b/web-player/src/lib/api/schema.d.ts @@ -1,7 +1,4 @@ -/** - * This file was auto-generated by openapi-typescript. - * Do not make direct changes to the file. - */ + export interface paths { "/albums": { @@ -11,10 +8,10 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Albums, Optionally Filtered By Title. */ + get: operations["GetAlbums"]; put?: never; - /** Create A New Album. */ + post: operations["CreateAlbum"]; delete?: never; options?: never; @@ -29,7 +26,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get An Album By Id. */ + get: operations["GetAlbumById"]; put?: never; post?: never; @@ -46,7 +43,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Albums For A User. */ + get: operations["GetAlbumsByUserId"]; put?: never; post?: never; @@ -63,7 +60,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get The Albums The Current User Listened To Most Recently. */ + get: operations["GetRecentlyListenedAlbums"]; put?: never; post?: never; @@ -80,7 +77,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get The Tracks Of An Album Ordered By Track Number. */ + get: operations["GetAlbumTracks"]; put?: never; post?: never; @@ -97,7 +94,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get An Album Cover Image. */ + get: operations["GetAlbumCover"]; put?: never; post?: never; @@ -116,7 +113,7 @@ export interface paths { }; get?: never; put?: never; - /** Request A Pre-Signed URL To Upload An Album Picture. */ + post: operations["RequestAlbumPictureUpload"]; delete?: never; options?: never; @@ -132,10 +129,10 @@ export interface paths { cookie?: never; }; get?: never; - /** Update An Album. */ + put: operations["UpdateAlbum"]; post?: never; - /** Delete An Album. */ + delete: operations["DeleteAlbum"]; options?: never; head?: never; @@ -151,9 +148,9 @@ export interface paths { }; get?: never; put?: never; - /** Add One Of Your Uploaded Tracks To An Album. */ + post: operations["AddTrackToAlbum"]; - /** Remove A Track From An Album. */ + delete: operations["RemoveTrackFromAlbum"]; options?: never; head?: never; @@ -167,7 +164,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get The Public Playback Configuration (Whether Anonymous Listening Is Allowed). Works Anonymously. */ + get: operations["GetPlaybackPublicConfig"]; put?: never; post?: never; @@ -184,7 +181,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get The Current User'S Liked Tracks. */ + get: operations["GetLikedTracks"]; put?: never; post?: never; @@ -203,7 +200,7 @@ export interface paths { }; get?: never; put?: never; - /** Like Or Unlike A Track By Id. */ + post: operations["ToggleTrackLike"]; delete?: never; options?: never; @@ -218,7 +215,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get The Server-Generated Mixes Of The Current User. */ + get: operations["GetMixes"]; put?: never; post?: never; @@ -235,7 +232,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A Mix With All Of Its Songs. */ + get: operations["GetMixById"]; put?: never; post?: never; @@ -252,10 +249,10 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated PlayLists. */ + get: operations["GetPlayLists"]; put?: never; - /** Create A New PlayList. */ + post: operations["CreatePlayList"]; delete?: never; options?: never; @@ -270,7 +267,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A PlayList By Id. */ + get: operations["GetPlayListById"]; put?: never; post?: never; @@ -287,7 +284,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated PlayLists For A User. */ + get: operations["GetPlayListsByUserId"]; put?: never; post?: never; @@ -304,10 +301,10 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Tracks Of A PlayList. */ + get: operations["GetPlayListTracks"]; put?: never; - /** Add One Of Your Tracks To A PlayList. */ + post: operations["AddPlayListTrack"]; delete?: never; options?: never; @@ -322,7 +319,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A PlayList Cover Image. */ + get: operations["GetPlayListCover"]; put?: never; post?: never; @@ -340,10 +337,10 @@ export interface paths { cookie?: never; }; get?: never; - /** Update An Existing PlayList. */ + put: operations["UpdatePlayList"]; post?: never; - /** Delete A PlayList. */ + delete: operations["DeletePlayList"]; options?: never; head?: never; @@ -359,7 +356,7 @@ export interface paths { }; get?: never; put?: never; - /** Request A Pre-Signed URL To Upload A PlayList Picture. */ + post: operations["RequestPlayListPictureUpload"]; delete?: never; options?: never; @@ -377,7 +374,7 @@ export interface paths { get?: never; put?: never; post?: never; - /** Remove A Track From A PlayList. */ + delete: operations["RemoveTrackFromPlayList"]; options?: never; head?: never; @@ -391,10 +388,10 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Tracks, Optionally Filtered By Name. */ + get: operations["GetTracks"]; put?: never; - /** Create A New Track. */ + post: operations["CreateTrack"]; delete?: never; options?: never; @@ -409,7 +406,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A Track By Id. */ + get: operations["GetTrackById"]; put?: never; post?: never; @@ -426,7 +423,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A Track Cover Image. */ + get: operations["GetTrackCover"]; put?: never; post?: never; @@ -443,7 +440,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A Streaming Manifest URL And Ticket For A Track. Works Anonymously When The Playback Configuration Allows It. */ + get: operations["GetTrackStream"]; put?: never; post?: never; @@ -460,7 +457,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Tracks For A User. */ + get: operations["GetTracksByUserId"]; put?: never; post?: never; @@ -480,7 +477,7 @@ export interface paths { get?: never; put?: never; post?: never; - /** Delete A Track. */ + delete: operations["DeleteTrack"]; options?: never; head?: never; @@ -496,7 +493,7 @@ export interface paths { }; get?: never; put?: never; - /** Request Pre-Signed URLs To Upload Track Picture And Audio. */ + post: operations["RequestTrackUploadUrls"]; delete?: never; options?: never; @@ -511,10 +508,10 @@ export interface paths { path?: never; cookie?: never; }; - /** Get Paginated Users. */ + get: operations["GetUsers"]; put?: never; - /** Create A New User. */ + post: operations["CreateUser"]; delete?: never; options?: never; @@ -529,7 +526,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A User By Id. */ + get: operations["GetUserById"]; put?: never; post?: never; @@ -546,7 +543,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A User'S Listening History. */ + get: operations["GetListeningHistory"]; put?: never; post?: never; @@ -563,7 +560,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A User'S Listening Stats For The Current Week And Streak. */ + get: operations["GetListeningStats"]; put?: never; post?: never; @@ -580,7 +577,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Get A User'S Public Profile, Including Follower Counts. */ + get: operations["GetUserProfile"]; put?: never; post?: never; @@ -597,7 +594,7 @@ export interface paths { path?: never; cookie?: never; }; - /** Check Whether The Current User Follows Another User. */ + get: operations["IsFollowingUser"]; put?: never; post?: never; @@ -616,9 +613,9 @@ export interface paths { }; get?: never; put?: never; - /** Follow A User. */ + post: operations["FollowUser"]; - /** Unfollow A User. */ + delete: operations["UnfollowUser"]; options?: never; head?: never; @@ -630,36 +627,36 @@ export type webhooks = Record; export interface components { schemas: { AddPlayListTrackRequest: { - /** Format: uuid */ + trackId: string; }; AlbumApplicationResponse: { - /** Format: uuid */ + id: string; title: string; description: null | string; - /** Format: int32 */ + releaseYear: null | number | string; ownerUserId: string; - /** Format: int32 */ + trackCount: number | string; smallImageKeyName: null | string; mediumImageKeyName: null | string; largeImageKeyName: null | string; - /** Format: date-time */ + createdAt: string; - /** Format: date-time */ + updatedAt: string; coverTrackIds: string[]; }; AlbumPictureUploadResponse: { - /** Format: uuid */ + intentId: string; bucket: string; key: string; pictureName: string; contentType: string; - /** Format: int32 */ + expiresInSeconds: number | string; uploadUrl: string; }; @@ -668,13 +665,13 @@ export interface components { }; AlbumsSearchResponse: { items: components["schemas"]["AlbumSearchItemResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasPreviousPage: boolean; hasNextPage: boolean; @@ -682,27 +679,27 @@ export interface components { CreateAlbumRequest: { title: string; description: null | string; - /** Format: int32 */ + releaseYear: null | number | string; - /** Format: uuid */ + pictureIntentId: string; }; CreatePlayListRequest: { name: string; description: null | string; - /** Format: uuid */ + pictureIntentId: null | string; visibility?: components["schemas"]["PlaylistVisibility"]; }; CreateTrackRequest: { title: string; - /** Format: uuid */ + pictureIntentId: string; - /** Format: uuid */ + audioIntentId: string; }; CreateUserRequest: { - /** Format: int64 */ + id: number | string; name: string; firstName: null | string; @@ -711,7 +708,7 @@ export interface components { HttpValidationProblemDetails: { type?: null | string; title?: null | string; - /** Format: int32 */ + status?: null | number | string; detail?: null | string; instance?: null | string; @@ -720,91 +717,91 @@ export interface components { }; }; ListeningStatsResponse: { - /** Format: int32 */ + tracksThisWeek: number | string; - /** Format: int32 */ + secondsThisWeek: number | string; - /** Format: int32 */ + streakDays: number | string; }; MixApplicationResponse: { - /** Format: uuid */ + id: string; title: string; subtitle: null | string; - /** Format: int32 */ + itemCount: number | string; items: components["schemas"]["MixItemApplicationResponse"][]; }; MixItemApplicationResponse: { - /** Format: uuid */ + trackId: string; title: string; artist: null | string; - /** Format: double */ + durationSeconds: number | string; - /** Format: int32 */ + listensCount: number | string; }; PaginatedResponseOfAlbumApplicationResponse: { items: components["schemas"]["AlbumApplicationResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasNextPage: boolean; hasPreviousPage: boolean; }; PaginatedResponseOfPlayListApplicationResponse: { items: components["schemas"]["PlayListApplicationResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasNextPage: boolean; hasPreviousPage: boolean; }; PaginatedResponseOfTrackApplicationResponse: { items: components["schemas"]["TrackApplicationResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasNextPage: boolean; hasPreviousPage: boolean; }; PaginatedResponseOfUserApplicationResponse: { items: components["schemas"]["UserApplicationResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasNextPage: boolean; hasPreviousPage: boolean; }; PlaybackPublicConfigResponse: { allowAnonymousListening: boolean; - /** Format: int32 */ + anonymousFragmentSeconds: number | string; }; PlayListApplicationResponse: { - /** Format: uuid */ + id: string; name: string; description: null | string; @@ -812,37 +809,37 @@ export interface components { mediumImageKeyName: null | string; largeImageKeyName: null | string; visibility: components["schemas"]["PlaylistVisibility"]; - /** Format: date-time */ + createdAt: string; - /** Format: date-time */ + updatedAt: string; coverTrackIds: string[]; }; PlayListPictureUploadResponse: { - /** Format: uuid */ + intentId: string; bucket: string; key: string; pictureName: string; contentType: string; - /** Format: int32 */ + expiresInSeconds: number | string; uploadUrl: string; }; - /** @enum {unknown} */ + PlaylistVisibility: "Private" | "Public"; - /** @enum {unknown} */ + ProcessingStatus: "Pending" | "Processing" | "Completed" | "Failed"; RequestAlbumPictureUploadRequest: { fileType: string; contentType: string; - /** Format: int64 */ + expectedSizeBytes?: null | number | string; }; RequestPlayListPictureUploadRequest: { fileType: string; contentType: string; - /** Format: int64 */ + expectedSizeBytes?: null | number | string; }; RequestTrackUploadUrlsRequest: { @@ -850,28 +847,28 @@ export interface components { pictureContentType: string; audioFileType: string; audioContentType: string; - /** Format: int64 */ + expectedPictureSizeBytes?: null | number | string; - /** Format: int64 */ + expectedAudioSizeBytes?: null | number | string; }; ToggleLikeRequest: { - /** Format: uuid */ + trackId: string; }; TrackApplicationResponse: { - /** Format: uuid */ + id: string; title: string; artist: null | string; audioStatus: components["schemas"]["ProcessingStatus"]; - /** Format: double */ + duration: number | string; - /** Format: int32 */ + listensCount: number | string; - /** Format: date-time */ + createdAt: string; - /** Format: date-time */ + updatedAt: string; ownerUserId: string; }; @@ -880,13 +877,13 @@ export interface components { }; TracksSearchResponse: { items: components["schemas"]["TrackSearchItemResponse"][]; - /** Format: int32 */ + pageNumber: number | string; - /** Format: int32 */ + pageSize: number | string; - /** Format: int32 */ + pageCount: number | string; - /** Format: int32 */ + totalItemCount: number | string; hasPreviousPage: boolean; hasNextPage: boolean; @@ -894,13 +891,13 @@ export interface components { TrackStreamResponse: { manifestUrl: string; ticket: string; - /** Format: int32 */ + expiresInSeconds: number | string; }; TrackUploadUrlsResponse: { - /** Format: uuid */ + pictureIntentId: string; - /** Format: uuid */ + audioIntentId: string; bucket: string; pictureKey: string; @@ -911,21 +908,21 @@ export interface components { audioName: string; audioContentType: string; audioUploadUrl: string; - /** Format: int32 */ + expiresInSeconds: number | string; }; UpdateAlbumRequest: { newTitle: string; newDescription: null | string; - /** Format: int32 */ + newReleaseYear: null | number | string; - /** Format: uuid */ + newPictureIntentId: null | string; }; UpdatePlayListRequest: { newName: null | string; newDescription: null | string; - /** Format: uuid */ + newPictureIntentId: null | string; newVisibility?: null | components["schemas"]["PlaylistVisibility"]; }; @@ -935,9 +932,9 @@ export interface components { firstName: null | string; secondName: null | string; profilePictureUrl: null | string; - /** Format: date-time */ + createdAt: string; - /** Format: date-time */ + updatedAt: string; }; UserProfileResponse: { @@ -946,11 +943,11 @@ export interface components { firstName: null | string; secondName: null | string; profilePictureUrl: null | string; - /** Format: date-time */ + createdAt: string; - /** Format: int32 */ + followersCount: number | string; - /** Format: int32 */ + followingCount: number | string; }; }; @@ -975,7 +972,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -999,7 +996,7 @@ export interface operations { }; }; responses: { - /** @description Created */ + 201: { headers: { [name: string]: unknown; @@ -1008,7 +1005,7 @@ export interface operations { "application/json": components["schemas"]["AlbumApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1017,14 +1014,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1044,7 +1041,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1053,7 +1050,7 @@ export interface operations { "application/json": components["schemas"]["AlbumApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1076,7 +1073,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1085,7 +1082,7 @@ export interface operations { "application/json": components["schemas"]["PaginatedResponseOfAlbumApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1105,7 +1102,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1114,7 +1111,7 @@ export interface operations { "application/json": components["schemas"]["AlbumApplicationResponse"][]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; @@ -1137,7 +1134,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1146,7 +1143,7 @@ export interface operations { "application/json": components["schemas"]["PaginatedResponseOfTrackApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1168,14 +1165,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1197,7 +1194,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1206,7 +1203,7 @@ export interface operations { "application/json": components["schemas"]["AlbumPictureUploadResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1215,14 +1212,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1246,7 +1243,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1255,7 +1252,7 @@ export interface operations { "application/json": components["schemas"]["AlbumApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1264,14 +1261,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1291,21 +1288,21 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1326,28 +1323,28 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -1368,21 +1365,21 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1400,7 +1397,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1423,7 +1420,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1432,7 +1429,7 @@ export interface operations { "application/json": components["schemas"]["PaginatedResponseOfTrackApplicationResponse"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; @@ -1454,7 +1451,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1463,14 +1460,14 @@ export interface operations { "application/json": boolean; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1488,7 +1485,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1497,7 +1494,7 @@ export interface operations { "application/json": components["schemas"]["MixApplicationResponse"][]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; @@ -1517,7 +1514,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1526,14 +1523,14 @@ export interface operations { "application/json": components["schemas"]["MixApplicationResponse"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1554,7 +1551,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1578,7 +1575,7 @@ export interface operations { }; }; responses: { - /** @description Created */ + 201: { headers: { [name: string]: unknown; @@ -1587,7 +1584,7 @@ export interface operations { "application/json": components["schemas"]["PlayListApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1596,14 +1593,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1623,7 +1620,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1632,7 +1629,7 @@ export interface operations { "application/json": components["schemas"]["PlayListApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1657,7 +1654,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1682,7 +1679,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1691,7 +1688,7 @@ export interface operations { "application/json": components["schemas"]["PaginatedResponseOfTrackApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1715,7 +1712,7 @@ export interface operations { }; }; responses: { - /** @description Created */ + 201: { headers: { [name: string]: unknown; @@ -1724,21 +1721,21 @@ export interface operations { "application/json": components["schemas"]["TrackApplicationResponse"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -1760,14 +1757,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1791,7 +1788,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1800,7 +1797,7 @@ export interface operations { "application/json": components["schemas"]["PlayListApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1809,14 +1806,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1836,21 +1833,21 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1872,7 +1869,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1881,7 +1878,7 @@ export interface operations { "application/json": components["schemas"]["PlayListPictureUploadResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1890,14 +1887,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1918,21 +1915,21 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -1954,7 +1951,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -1978,7 +1975,7 @@ export interface operations { }; }; responses: { - /** @description Created */ + 201: { headers: { [name: string]: unknown; @@ -1987,7 +1984,7 @@ export interface operations { "application/json": components["schemas"]["TrackApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -1996,21 +1993,21 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -2030,7 +2027,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2039,7 +2036,7 @@ export interface operations { "application/json": components["schemas"]["TrackApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2061,14 +2058,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2088,7 +2085,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2097,14 +2094,14 @@ export interface operations { "application/json": components["schemas"]["TrackStreamResponse"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2128,7 +2125,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2150,28 +2147,28 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -2193,7 +2190,7 @@ export interface operations { }; }; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2202,7 +2199,7 @@ export interface operations { "application/json": components["schemas"]["TrackUploadUrlsResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -2211,21 +2208,21 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -2247,7 +2244,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2271,7 +2268,7 @@ export interface operations { }; }; responses: { - /** @description Created */ + 201: { headers: { [name: string]: unknown; @@ -2280,7 +2277,7 @@ export interface operations { "application/json": components["schemas"]["UserApplicationResponse"]; }; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -2289,7 +2286,7 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Conflict */ + 409: { headers: { [name: string]: unknown; @@ -2309,7 +2306,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2318,7 +2315,7 @@ export interface operations { "application/json": components["schemas"]["UserApplicationResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2338,7 +2335,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2347,7 +2344,7 @@ export interface operations { "application/json": components["schemas"]["TrackApplicationResponse"][]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2367,7 +2364,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2389,7 +2386,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2398,7 +2395,7 @@ export interface operations { "application/json": components["schemas"]["UserProfileResponse"]; }; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2418,7 +2415,7 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + 200: { headers: { [name: string]: unknown; @@ -2427,7 +2424,7 @@ export interface operations { "application/json": boolean; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; @@ -2447,14 +2444,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Bad Request */ + 400: { headers: { [name: string]: unknown; @@ -2463,14 +2460,14 @@ export interface operations { "application/problem+json": components["schemas"]["HttpValidationProblemDetails"]; }; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Not Found */ + 404: { headers: { [name: string]: unknown; @@ -2490,14 +2487,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; - /** @description Unauthorized */ + 401: { headers: { [name: string]: unknown; diff --git a/web-player/src/lib/components/ui/TrackList.svelte b/web-player/src/lib/components/ui/TrackList.svelte index 1f99ffb..2a71729 100644 --- a/web-player/src/lib/components/ui/TrackList.svelte +++ b/web-player/src/lib/components/ui/TrackList.svelte @@ -109,7 +109,7 @@
{#each tracks as track, i (track.id)} {@const active = player.current.id === track.id} - +
= { pop: { label: 'Pop', tagline: 'Éxitos que suenan en todas partes' }, rock: { label: 'Rock', tagline: 'Guitarras, actitud y ruido' }, diff --git a/web-player/src/lib/recentlyPlayed.ts b/web-player/src/lib/recentlyPlayed.ts index 1fee45a..9b110d6 100644 --- a/web-player/src/lib/recentlyPlayed.ts +++ b/web-player/src/lib/recentlyPlayed.ts @@ -1,9 +1,5 @@ import { player, toQueueItems, type ApiTrackLike, type QueueItem } from '$lib/player/player.svelte'; -/** - * Merges the in-memory session history (tracks played since the page loaded) - * with the server-side listening history, de-duplicated by id and capped at `limit`. - */ export function mergeRecentlyPlayed(history: ApiTrackLike[], limit: number): QueueItem[] { const seen = new Set(); const merged: QueueItem[] = []; diff --git a/web-player/src/lib/server/greeting.ts b/web-player/src/lib/server/greeting.ts index 0115d24..5375451 100644 --- a/web-player/src/lib/server/greeting.ts +++ b/web-player/src/lib/server/greeting.ts @@ -88,10 +88,6 @@ export interface Birthday { day: number; } -/** - * `birthday` is optional because the user's date of birth isn't part of the - * session/profile data yet. Wire it up here once that field exists upstream. - */ export function pickGreeting(date: Date, birthday?: Birthday | null): string { const month = date.getMonth() + 1; const day = date.getDate(); diff --git a/web-player/src/lib/server/playbackConfig.ts b/web-player/src/lib/server/playbackConfig.ts index 735bb9d..af2f8c8 100644 --- a/web-player/src/lib/server/playbackConfig.ts +++ b/web-player/src/lib/server/playbackConfig.ts @@ -15,8 +15,6 @@ export async function getAllowAnonymousListening(fetchFn: typeof fetch): Promise cached = { allowAnonymousListening, expiresAt: Date.now() + CACHE_TTL_MS }; return allowAnonymousListening; } catch { - // The API being unreachable shouldn't take down every page in the app; - // fail closed (as if anonymous listening were off) and retry next time. return false; } } diff --git a/web-player/src/lib/theme/theme.css b/web-player/src/lib/theme/theme.css index f8fbc85..ec2380d 100644 --- a/web-player/src/lib/theme/theme.css +++ b/web-player/src/lib/theme/theme.css @@ -1,10 +1,4 @@ :root { - /* Hue-based tokens (--mf-accent*, --mf-bg/elevated/panel-bg/bar-bg/hairline, - --mf-ambient, --mf-hero-bg/spotlight-bg/modal-glow, --mf-logo-grad, - --mf-cover-grad) are NOT defined here: they come only from - buildThemeTokens() in theme/tokens.ts, inlined as SSR