diff --git a/Infrastructure/Infrastructure.csproj b/Infrastructure/Infrastructure.csproj index 30d947b..9e42c50 100644 --- a/Infrastructure/Infrastructure.csproj +++ b/Infrastructure/Infrastructure.csproj @@ -42,4 +42,8 @@ + + + + diff --git a/Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.Designer.cs b/Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.Designer.cs similarity index 76% rename from Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.Designer.cs rename to Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.Designer.cs index f84d009..30ca380 100644 --- a/Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.Designer.cs +++ b/Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.Designer.cs @@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Musify.Infrastructure.Persistence.Migrations { [DbContext(typeof(Database))] - [Migration("20260328141805_FirstMigration")] + [Migration("20260513230601_FirstMigration")] partial class FirstMigration { /// @@ -109,86 +109,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.ToTable("PlayListHasTrack"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessExecution", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("ConversationId") - .HasColumnType("uuid"); - - b.Property("CorrelationId") - .HasColumnType("uuid"); - - b.Property("ErrorMessage") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("FinishedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("MessageId") - .HasColumnType("uuid"); - - b.Property("ProcessName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("StartedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("Status") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("CorrelationId", "ProcessName"); - - b.ToTable("ProcessExecution"); - }); - - modelBuilder.Entity("Musify.Domain.Entities.ProcessStepExecution", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Attempt") - .HasColumnType("integer"); - - b.Property("ComponentType") - .HasColumnType("integer"); - - b.Property("ErrorMessage") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("FinishedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("ProcessExecutionId") - .HasColumnType("uuid"); - - b.Property("StartedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("Status") - .HasColumnType("integer"); - - b.Property("StepName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("ProcessExecutionId", "StepName"); - - b.ToTable("ProcessStepExecution"); - }); - modelBuilder.Entity("Musify.Domain.Entities.Track", b => { b.Property("Id") @@ -196,20 +116,23 @@ namespace Musify.Infrastructure.Persistence.Migrations .HasColumnType("uuid"); b.Property("AudioFolderName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("AudioTranscodeProcessingStatus") + .HasColumnType("integer"); + b.Property("CreatedDate") .HasColumnType("timestamp with time zone"); b.Property("LargePictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("LastRetryAt") + .HasColumnType("timestamp with time zone"); + b.Property("MediumPictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); @@ -228,8 +151,13 @@ namespace Musify.Infrastructure.Persistence.Migrations .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("PicturesProcessingStatus") + .HasColumnType("integer"); + + b.Property("RetryCount") + .HasColumnType("integer"); + b.Property("SmallPictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); @@ -284,6 +212,24 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); + b.Property("FirstName") + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("SecondName") + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); @@ -343,17 +289,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Navigation("Track"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessStepExecution", b => - { - b.HasOne("Musify.Domain.Entities.ProcessExecution", "ProcessExecution") - .WithMany("Steps") - .HasForeignKey("ProcessExecutionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("ProcessExecution"); - }); - modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b => { b.HasOne("Musify.Domain.Entities.Track", "Track") @@ -378,11 +313,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Navigation("PlayListTracks"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessExecution", b => - { - b.Navigation("Steps"); - }); - modelBuilder.Entity("Musify.Domain.Entities.Track", b => { b.Navigation("PlayListTracks"); diff --git a/Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.cs b/Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.cs similarity index 70% rename from Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.cs rename to Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.cs index 3c04607..17e8882 100644 --- a/Infrastructure/Persistence/Migrations/20260328141805_FirstMigration.cs +++ b/Infrastructure/Persistence/Migrations/20260513230601_FirstMigration.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using System; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -10,25 +11,6 @@ namespace Musify.Infrastructure.Persistence.Migrations /// protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.CreateTable( - name: "ProcessExecution", - columns: table => new - { - Id = table.Column(type: "uuid", nullable: false), - CorrelationId = table.Column(type: "uuid", nullable: true), - ConversationId = table.Column(type: "uuid", nullable: true), - MessageId = table.Column(type: "uuid", nullable: true), - ProcessName = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), - Status = table.Column(type: "integer", nullable: false), - StartedDateTime = table.Column(type: "timestamp with time zone", nullable: false), - FinishedDateTime = table.Column(type: "timestamp with time zone", nullable: true), - ErrorMessage = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ProcessExecution", x => x.Id); - }); - migrationBuilder.CreateTable( name: "Tracks", columns: table => new @@ -37,11 +19,15 @@ namespace Musify.Infrastructure.Persistence.Migrations Title = table.Column(type: "character varying(50)", maxLength: 50, nullable: false), NormalizedTitle = table.Column(type: "character varying(50)", maxLength: 50, nullable: false), OriginalPictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), - SmallPictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), - MediumPictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), - LargePictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), + SmallPictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), + MediumPictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), + LargePictureName = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), OriginalAudioName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), - AudioFolderName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), + AudioFolderName = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), + PicturesProcessingStatus = table.Column(type: "integer", nullable: false), + AudioTranscodeProcessingStatus = table.Column(type: "integer", nullable: false), + RetryCount = table.Column(type: "integer", nullable: false), + LastRetryAt = table.Column(type: "timestamp with time zone", nullable: true), CreatedDate = table.Column(type: "timestamp with time zone", nullable: false), UpdatedDate = table.Column(type: "timestamp with time zone", nullable: false) }, @@ -71,6 +57,10 @@ namespace Musify.Infrastructure.Persistence.Migrations columns: table => new { Id = table.Column(type: "uuid", nullable: false), + Name = table.Column(type: "character varying(48)", maxLength: 48, nullable: false), + NormalizedName = table.Column(type: "character varying(48)", maxLength: 48, nullable: false), + FirstName = table.Column(type: "character varying(48)", maxLength: 48, nullable: true), + SecondName = table.Column(type: "character varying(48)", maxLength: 48, nullable: true), CreatedAt = table.Column(type: "timestamp with time zone", nullable: false), UpdatedAt = table.Column(type: "timestamp with time zone", nullable: false) }, @@ -79,31 +69,6 @@ namespace Musify.Infrastructure.Persistence.Migrations table.PrimaryKey("PK_User", x => x.Id); }); - migrationBuilder.CreateTable( - name: "ProcessStepExecution", - columns: table => new - { - Id = table.Column(type: "uuid", nullable: false), - ProcessExecutionId = table.Column(type: "uuid", nullable: false), - StepName = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), - ComponentType = table.Column(type: "integer", nullable: false), - Status = table.Column(type: "integer", nullable: false), - Attempt = table.Column(type: "integer", nullable: false), - StartedDateTime = table.Column(type: "timestamp with time zone", nullable: false), - FinishedDateTime = table.Column(type: "timestamp with time zone", nullable: true), - ErrorMessage = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_ProcessStepExecution", x => x.Id); - table.ForeignKey( - name: "FK_ProcessStepExecution_ProcessExecution_ProcessExecutionId", - column: x => x.ProcessExecutionId, - principalTable: "ProcessExecution", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - migrationBuilder.CreateTable( name: "PlayLists", columns: table => new @@ -198,16 +163,6 @@ namespace Musify.Infrastructure.Persistence.Migrations table: "PlayLists", column: "UserId"); - migrationBuilder.CreateIndex( - name: "IX_ProcessExecution_CorrelationId_ProcessName", - table: "ProcessExecution", - columns: new[] { "CorrelationId", "ProcessName" }); - - migrationBuilder.CreateIndex( - name: "IX_ProcessStepExecution_ProcessExecutionId_StepName", - table: "ProcessStepExecution", - columns: new[] { "ProcessExecutionId", "StepName" }); - migrationBuilder.CreateIndex( name: "IX_UserHasTrack_TrackId", table: "UserHasTrack", @@ -225,9 +180,6 @@ namespace Musify.Infrastructure.Persistence.Migrations migrationBuilder.DropTable( name: "PlayListHasTrack"); - migrationBuilder.DropTable( - name: "ProcessStepExecution"); - migrationBuilder.DropTable( name: "Upload"); @@ -237,9 +189,6 @@ namespace Musify.Infrastructure.Persistence.Migrations migrationBuilder.DropTable( name: "PlayLists"); - migrationBuilder.DropTable( - name: "ProcessExecution"); - migrationBuilder.DropTable( name: "Tracks"); diff --git a/Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs b/Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs index 85d9421..0f04a84 100644 --- a/Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs +++ b/Infrastructure/Persistence/Migrations/DatabaseModelSnapshot.cs @@ -106,86 +106,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.ToTable("PlayListHasTrack"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessExecution", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("ConversationId") - .HasColumnType("uuid"); - - b.Property("CorrelationId") - .HasColumnType("uuid"); - - b.Property("ErrorMessage") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("FinishedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("MessageId") - .HasColumnType("uuid"); - - b.Property("ProcessName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("StartedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("Status") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("CorrelationId", "ProcessName"); - - b.ToTable("ProcessExecution"); - }); - - modelBuilder.Entity("Musify.Domain.Entities.ProcessStepExecution", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Attempt") - .HasColumnType("integer"); - - b.Property("ComponentType") - .HasColumnType("integer"); - - b.Property("ErrorMessage") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("FinishedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("ProcessExecutionId") - .HasColumnType("uuid"); - - b.Property("StartedDateTime") - .HasColumnType("timestamp with time zone"); - - b.Property("Status") - .HasColumnType("integer"); - - b.Property("StepName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("ProcessExecutionId", "StepName"); - - b.ToTable("ProcessStepExecution"); - }); - modelBuilder.Entity("Musify.Domain.Entities.Track", b => { b.Property("Id") @@ -193,20 +113,23 @@ namespace Musify.Infrastructure.Persistence.Migrations .HasColumnType("uuid"); b.Property("AudioFolderName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("AudioTranscodeProcessingStatus") + .HasColumnType("integer"); + b.Property("CreatedDate") .HasColumnType("timestamp with time zone"); b.Property("LargePictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("LastRetryAt") + .HasColumnType("timestamp with time zone"); + b.Property("MediumPictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); @@ -225,8 +148,13 @@ namespace Musify.Infrastructure.Persistence.Migrations .HasMaxLength(64) .HasColumnType("character varying(64)"); + b.Property("PicturesProcessingStatus") + .HasColumnType("integer"); + + b.Property("RetryCount") + .HasColumnType("integer"); + b.Property("SmallPictureName") - .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); @@ -281,6 +209,24 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); + b.Property("FirstName") + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + + b.Property("SecondName") + .HasMaxLength(48) + .HasColumnType("character varying(48)"); + b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); @@ -340,17 +286,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Navigation("Track"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessStepExecution", b => - { - b.HasOne("Musify.Domain.Entities.ProcessExecution", "ProcessExecution") - .WithMany("Steps") - .HasForeignKey("ProcessExecutionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("ProcessExecution"); - }); - modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b => { b.HasOne("Musify.Domain.Entities.Track", "Track") @@ -375,11 +310,6 @@ namespace Musify.Infrastructure.Persistence.Migrations b.Navigation("PlayListTracks"); }); - modelBuilder.Entity("Musify.Domain.Entities.ProcessExecution", b => - { - b.Navigation("Steps"); - }); - modelBuilder.Entity("Musify.Domain.Entities.Track", b => { b.Navigation("PlayListTracks");