Use long
This commit is contained in:
@@ -61,7 +61,7 @@ namespace Musify.Application.Configuration
|
|||||||
|
|
||||||
public string BuildOriginalPicturePath(string pictureName) => CombineKey(ParentFolders, OriginalPicturesFolder, pictureName);
|
public string BuildOriginalPicturePath(string pictureName) => CombineKey(ParentFolders, OriginalPicturesFolder, pictureName);
|
||||||
|
|
||||||
public string BuildOriginalPicturePath(Guid userId, string pictureName) => CombineKey(UploadsFolder, userId.ToString(), ParentFolders, OriginalPicturesFolder, pictureName);
|
public string BuildOriginalPicturePath(long userId, string pictureName) => CombineKey(UploadsFolder, userId.ToString(), ParentFolders, OriginalPicturesFolder, pictureName);
|
||||||
|
|
||||||
public string BuildSmallPicturePath(string pictureName) => CombineKey(ParentFolders, SmallPicturesFolder, pictureName);
|
public string BuildSmallPicturePath(string pictureName) => CombineKey(ParentFolders, SmallPicturesFolder, pictureName);
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ namespace Musify.Application.Configuration
|
|||||||
public string BuildLargePicturePath(string pictureName) => CombineKey(ParentFolders, LargePicturesFolder, pictureName);
|
public string BuildLargePicturePath(string pictureName) => CombineKey(ParentFolders, LargePicturesFolder, pictureName);
|
||||||
|
|
||||||
// Temp path used in Phase 2 for pre-signed upload keys (moved to final on consumption)
|
// Temp path used in Phase 2 for pre-signed upload keys (moved to final on consumption)
|
||||||
public string BuildTempPicturePath(string tempRootPrefix, Guid userId, string objectName) =>
|
public string BuildTempPicturePath(string tempRootPrefix, long userId, string objectName) =>
|
||||||
CombineKey(tempRootPrefix, userId.ToString(), ParentFolders, objectName);
|
CombineKey(tempRootPrefix, userId.ToString(), ParentFolders, objectName);
|
||||||
|
|
||||||
static string CombineKey(params string[] segments)
|
static string CombineKey(params string[] segments)
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace Musify.Application.Configuration
|
|||||||
|
|
||||||
public string BuildOriginalPicturePath(string pictureName) => CombineKey(OriginalPicturesPath, pictureName);
|
public string BuildOriginalPicturePath(string pictureName) => CombineKey(OriginalPicturesPath, pictureName);
|
||||||
|
|
||||||
public string BuildOriginalPicturePath(Guid userId, string pictureName) => CombineKey(UploadsFolder, userId.ToString(), OriginalPicturesPath, pictureName);
|
public string BuildOriginalPicturePath(long userId, string pictureName) => CombineKey(UploadsFolder, userId.ToString(), OriginalPicturesPath, pictureName);
|
||||||
|
|
||||||
public string BuildSmallPicturePath(string pictureName) => CombineKey(SmallPicturesPath, pictureName);
|
public string BuildSmallPicturePath(string pictureName) => CombineKey(SmallPicturesPath, pictureName);
|
||||||
|
|
||||||
@@ -81,15 +81,15 @@ namespace Musify.Application.Configuration
|
|||||||
|
|
||||||
public string BuildOriginalAudioPath(string audioName) => CombineKey(OriginalAudiosPath, audioName);
|
public string BuildOriginalAudioPath(string audioName) => CombineKey(OriginalAudiosPath, audioName);
|
||||||
|
|
||||||
public string BuildOriginalAudioPath(Guid userId, string audioName) => CombineKey(UploadsFolder, userId.ToString(), OriginalAudiosPath, audioName);
|
public string BuildOriginalAudioPath(long userId, string audioName) => CombineKey(UploadsFolder, userId.ToString(), OriginalAudiosPath, audioName);
|
||||||
|
|
||||||
public string BuildProcessedAudioPath(string audioName) => CombineKey(ProcessedAudiosPath, audioName);
|
public string BuildProcessedAudioPath(string audioName) => CombineKey(ProcessedAudiosPath, audioName);
|
||||||
|
|
||||||
// Temp paths used in Phase 2 for pre-signed upload keys (moved to final on consumption)
|
// Temp paths used in Phase 2 for pre-signed upload keys (moved to final on consumption)
|
||||||
public string BuildTempPicturePath(string tempRootPrefix, Guid userId, string objectName) =>
|
public string BuildTempPicturePath(string tempRootPrefix, long userId, string objectName) =>
|
||||||
CombineKey(tempRootPrefix, userId.ToString(), ParentFolder, objectName);
|
CombineKey(tempRootPrefix, userId.ToString(), ParentFolder, objectName);
|
||||||
|
|
||||||
public string BuildTempAudioPath(string tempRootPrefix, Guid userId, string objectName) =>
|
public string BuildTempAudioPath(string tempRootPrefix, long userId, string objectName) =>
|
||||||
CombineKey(tempRootPrefix, userId.ToString(), ParentFolder, objectName);
|
CombineKey(tempRootPrefix, userId.ToString(), ParentFolder, objectName);
|
||||||
|
|
||||||
static string CombineKey(params string[] segments)
|
static string CombineKey(params string[] segments)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ namespace Musify.Application.Contracts
|
|||||||
{
|
{
|
||||||
public interface IStreamTicketService
|
public interface IStreamTicketService
|
||||||
{
|
{
|
||||||
StreamTicket IssueTicket(Guid userId, string keyPrefix);
|
StreamTicket IssueTicket(long userId, string keyPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
public record StreamTicket(string Token, int ExpiresInSeconds);
|
public record StreamTicket(string Token, int ExpiresInSeconds);
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ namespace Musify.Application.Events
|
|||||||
{
|
{
|
||||||
public record DeletePlayListEvent(
|
public record DeletePlayListEvent(
|
||||||
Guid PlayListId,
|
Guid PlayListId,
|
||||||
Guid UserId);
|
long UserId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ namespace Musify.Application.Events
|
|||||||
{
|
{
|
||||||
public record DeleteTrackEvent(
|
public record DeleteTrackEvent(
|
||||||
Guid TrackId,
|
Guid TrackId,
|
||||||
Guid UserId);
|
long UserId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Musify.Application.PlayLists.Responses;
|
|||||||
namespace Musify.Application.PlayLists.Commands
|
namespace Musify.Application.PlayLists.Commands
|
||||||
{
|
{
|
||||||
public record CreatePlayListCommand(
|
public record CreatePlayListCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string Name,
|
string Name,
|
||||||
string Description,
|
string Description,
|
||||||
Guid? PictureIntentId)
|
Guid? PictureIntentId)
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ using Mediator;
|
|||||||
|
|
||||||
namespace Musify.Application.PlayLists.Commands
|
namespace Musify.Application.PlayLists.Commands
|
||||||
{
|
{
|
||||||
public record DeletePlayListCommand(Guid UserId, Guid PlayListId)
|
public record DeletePlayListCommand(long UserId, Guid PlayListId)
|
||||||
: ICommand<Result>;
|
: ICommand<Result>;
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ using Musify.Application.PlayLists.Responses;
|
|||||||
namespace Musify.Application.PlayLists.Commands
|
namespace Musify.Application.PlayLists.Commands
|
||||||
{
|
{
|
||||||
public record RequestPlayListPictureUploadCommand(
|
public record RequestPlayListPictureUploadCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string FileType,
|
string FileType,
|
||||||
string ContentType,
|
string ContentType,
|
||||||
long? ExpectedSizeBytes = null)
|
long? ExpectedSizeBytes = null)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Musify.Application.PlayLists.Responses;
|
|||||||
namespace Musify.Application.PlayLists.Commands
|
namespace Musify.Application.PlayLists.Commands
|
||||||
{
|
{
|
||||||
public record UpdatePlayListCommand(
|
public record UpdatePlayListCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
Guid PlayListId,
|
Guid PlayListId,
|
||||||
string? NewName,
|
string? NewName,
|
||||||
string? NewDescription,
|
string? NewDescription,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using Musify.Application.PlayLists.Responses;
|
|||||||
namespace Musify.Application.PlayLists.Queries
|
namespace Musify.Application.PlayLists.Queries
|
||||||
{
|
{
|
||||||
public record GetPlayListsByUserIdQuery(
|
public record GetPlayListsByUserIdQuery(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string? Name = null,
|
string? Name = null,
|
||||||
int PageNumber = 1,
|
int PageNumber = 1,
|
||||||
int PageSize = 10)
|
int PageSize = 10)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public sealed class UploadIntentValidator(
|
|||||||
{
|
{
|
||||||
public async Task<Result> CheckQuotaAsync(
|
public async Task<Result> CheckQuotaAsync(
|
||||||
UploadIntentConfiguration config,
|
UploadIntentConfiguration config,
|
||||||
Guid userId,
|
long userId,
|
||||||
long requiredBytes,
|
long requiredBytes,
|
||||||
int requiredIntentCount,
|
int requiredIntentCount,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
@@ -36,7 +36,7 @@ public sealed class UploadIntentValidator(
|
|||||||
public async Task<Result<UploadIntent>> ValidateAndLoadAsync(
|
public async Task<Result<UploadIntent>> ValidateAndLoadAsync(
|
||||||
UploadIntentConfiguration config,
|
UploadIntentConfiguration config,
|
||||||
Guid intentId,
|
Guid intentId,
|
||||||
Guid userId,
|
long userId,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var intent = await database.UploadIntents
|
var intent = await database.UploadIntents
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Musify.Application.Tracks.Responses;
|
|||||||
namespace Musify.Application.Tracks.Commands
|
namespace Musify.Application.Tracks.Commands
|
||||||
{
|
{
|
||||||
public record CreateTrackCommand(
|
public record CreateTrackCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string Title,
|
string Title,
|
||||||
Guid PictureIntentId,
|
Guid PictureIntentId,
|
||||||
Guid AudioIntentId)
|
Guid AudioIntentId)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using Mediator;
|
|||||||
namespace Musify.Application.Tracks.Commands
|
namespace Musify.Application.Tracks.Commands
|
||||||
{
|
{
|
||||||
public record DeleteTrackCommand(
|
public record DeleteTrackCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
Guid TrackId)
|
Guid TrackId)
|
||||||
: ICommand<Result>;
|
: ICommand<Result>;
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ using Musify.Application.Tracks.Responses;
|
|||||||
namespace Musify.Application.Tracks.Commands
|
namespace Musify.Application.Tracks.Commands
|
||||||
{
|
{
|
||||||
public record RequestTrackUploadUrlsCommand(
|
public record RequestTrackUploadUrlsCommand(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string PictureFileType,
|
string PictureFileType,
|
||||||
string PictureContentType,
|
string PictureContentType,
|
||||||
string AudioFileType,
|
string AudioFileType,
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ using Musify.Application.Tracks.Responses;
|
|||||||
|
|
||||||
namespace Musify.Application.Tracks.Queries
|
namespace Musify.Application.Tracks.Queries
|
||||||
{
|
{
|
||||||
public record GetTrackStreamQuery(Guid TrackId, Guid UserId)
|
public record GetTrackStreamQuery(Guid TrackId, long UserId)
|
||||||
: IQuery<Result<TrackStreamResponse>>;
|
: IQuery<Result<TrackStreamResponse>>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using Musify.Application.Tracks.Responses;
|
|||||||
namespace Musify.Application.Tracks.Queries
|
namespace Musify.Application.Tracks.Queries
|
||||||
{
|
{
|
||||||
public record GetTracksByUserIdQuery(
|
public record GetTracksByUserIdQuery(
|
||||||
Guid UserId,
|
long UserId,
|
||||||
string? Name = null,
|
string? Name = null,
|
||||||
int PageNumber = 1,
|
int PageNumber = 1,
|
||||||
int PageSize = 10)
|
int PageSize = 10)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Musify.Domain.Entities;
|
|||||||
|
|
||||||
namespace Musify.Application.Users.Commands
|
namespace Musify.Application.Users.Commands
|
||||||
{
|
{
|
||||||
public record CreateUserCommand(Guid Id,
|
public record CreateUserCommand(long Id,
|
||||||
string Name,
|
string Name,
|
||||||
string? FirstName,
|
string? FirstName,
|
||||||
string? SecondName)
|
string? SecondName)
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ using Musify.Application.Users.Responses;
|
|||||||
|
|
||||||
namespace Musify.Application.Users.Queries
|
namespace Musify.Application.Users.Queries
|
||||||
{
|
{
|
||||||
public record GetUserByIdQuery(Guid Id)
|
public record GetUserByIdQuery(long Id)
|
||||||
: IQuery<Result<UserApplicationResponse> >;
|
: IQuery<Result<UserApplicationResponse> >;
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
namespace Musify.Application.Users.Responses
|
namespace Musify.Application.Users.Responses
|
||||||
{
|
{
|
||||||
public record UserApplicationResponse(
|
public record UserApplicationResponse(
|
||||||
Guid Id,
|
long Id,
|
||||||
string Name,
|
string Name,
|
||||||
string? FirstName,
|
string? FirstName,
|
||||||
string? SecondName,
|
string? SecondName,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Musify.Domain.Entities
|
|||||||
public Guid Id { get; set; } = Guid.NewGuid();
|
public Guid Id { get; set; } = Guid.NewGuid();
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public required Guid UserId { get; set; }
|
public required long UserId { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[MaxLength(50)]
|
[MaxLength(50)]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace Musify.Domain.Entities
|
|||||||
public Guid Id { get; set; } = Guid.NewGuid();
|
public Guid Id { get; set; } = Guid.NewGuid();
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public required Guid UserId { get; set; }
|
public required long UserId { get; set; }
|
||||||
|
|
||||||
[Required, MaxLength(128)]
|
[Required, MaxLength(128)]
|
||||||
public required string Bucket { get; set; }
|
public required string Bucket { get; set; }
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ namespace Musify.Domain.Entities
|
|||||||
public class User
|
public class User
|
||||||
{
|
{
|
||||||
[Key]
|
[Key]
|
||||||
public required Guid Id { get; set; }
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
public required long Id { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[MaxLength(48)]
|
[MaxLength(48)]
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Musify.Domain.Entities
|
|||||||
public Guid Id { get; set; } = Guid.NewGuid();
|
public Guid Id { get; set; } = Guid.NewGuid();
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public required Guid UserId { get; set; }
|
public required long UserId { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public required Guid TrackId { get; set; }
|
public required Guid TrackId { get; set; }
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
|||||||
{
|
{
|
||||||
public async Task<RoutingSlipBuilder> BuildAsync(
|
public async Task<RoutingSlipBuilder> BuildAsync(
|
||||||
Guid playListId,
|
Guid playListId,
|
||||||
Guid userId,
|
long userId,
|
||||||
Guid? correlationId,
|
Guid? correlationId,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
|||||||
{
|
{
|
||||||
public async Task<RoutingSlipBuilder> BuildAsync(
|
public async Task<RoutingSlipBuilder> BuildAsync(
|
||||||
Guid trackId,
|
Guid trackId,
|
||||||
Guid userId,
|
long userId,
|
||||||
Guid? correlationId,
|
Guid? correlationId,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
|||||||
-332
@@ -1,332 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
using Musify.Infrastructure.Persistence;
|
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(Database))]
|
|
||||||
[Migration("20260513230601_FirstMigration")]
|
|
||||||
partial class FirstMigration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "10.0.5")
|
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Description")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("PlayLists");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("PlayListId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<int>("Position")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlayListId");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.ToTable("PlayListHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("AudioFolderName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("AudioTranscodeProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastRetryAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedTitle")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalAudioName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("PicturesProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<int>("RetryCount")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Title")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Tracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Upload", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("Bucket")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<string>("ContentType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Key")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<int>("State")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Upload");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("FirstName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("SecondName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("UserHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("PlayLists")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.PlayList", "PlayList")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("PlayListId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("PlayList");
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayLists");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-512
@@ -1,512 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
using Musify.Infrastructure.Persistence;
|
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(Database))]
|
|
||||||
[Migration("20260514095113_AddMassTransitOutbox")]
|
|
||||||
partial class AddMassTransitOutbox
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "10.0.5")
|
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.InboxState", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Consumed")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("ConsumerId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Delivered")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("ExpirationTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<long?>("LastSequenceNumber")
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
b.Property<Guid>("LockId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("MessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<int>("ReceiveCount")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<DateTime>("Received")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<byte[]>("RowVersion")
|
|
||||||
.IsConcurrencyToken()
|
|
||||||
.ValueGeneratedOnAddOrUpdate()
|
|
||||||
.HasColumnType("bytea");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("Delivered");
|
|
||||||
|
|
||||||
b.ToTable("InboxState");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("SequenceNumber")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("SequenceNumber"));
|
|
||||||
|
|
||||||
b.Property<string>("Body")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<string>("ContentType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<Guid?>("ConversationId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("CorrelationId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("DestinationAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("EnqueueTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("ExpirationTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("FaultAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<string>("Headers")
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InboxConsumerId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InboxMessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InitiatorId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("MessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("MessageType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("OutboxId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("Properties")
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("RequestId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("ResponseAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("SentTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("SourceAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.HasKey("SequenceNumber");
|
|
||||||
|
|
||||||
b.HasIndex("EnqueueTime");
|
|
||||||
|
|
||||||
b.HasIndex("ExpirationTime");
|
|
||||||
|
|
||||||
b.HasIndex("OutboxId", "SequenceNumber")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("InboxMessageId", "InboxConsumerId", "SequenceNumber")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("OutboxMessage");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxState", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("OutboxId")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("Created")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Delivered")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<long?>("LastSequenceNumber")
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
b.Property<Guid>("LockId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<byte[]>("RowVersion")
|
|
||||||
.IsConcurrencyToken()
|
|
||||||
.ValueGeneratedOnAddOrUpdate()
|
|
||||||
.HasColumnType("bytea");
|
|
||||||
|
|
||||||
b.HasKey("OutboxId");
|
|
||||||
|
|
||||||
b.HasIndex("Created");
|
|
||||||
|
|
||||||
b.ToTable("OutboxState");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Description")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("PlayLists");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("PlayListId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<int>("Position")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlayListId");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.ToTable("PlayListHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("AudioFolderName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("AudioTranscodeProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastRetryAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedTitle")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalAudioName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("PicturesProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<int>("RetryCount")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Title")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Tracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Upload", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("Bucket")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<string>("ContentType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Key")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<int>("State")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Upload");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("FirstName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("SecondName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("UserHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("MassTransit.EntityFrameworkCoreIntegration.OutboxState", null)
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("OutboxId");
|
|
||||||
|
|
||||||
b.HasOne("MassTransit.EntityFrameworkCoreIntegration.InboxState", null)
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("InboxMessageId", "InboxConsumerId")
|
|
||||||
.HasPrincipalKey("MessageId", "ConsumerId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("PlayLists")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.PlayList", "PlayList")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("PlayListId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("PlayList");
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayLists");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class AddMassTransitOutbox : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "InboxState",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
||||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
||||||
MessageId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
ConsumerId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
LockId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
RowVersion = table.Column<byte[]>(type: "bytea", rowVersion: true, nullable: true),
|
|
||||||
Received = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
||||||
ReceiveCount = table.Column<int>(type: "integer", nullable: false),
|
|
||||||
ExpirationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
||||||
Consumed = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
||||||
Delivered = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
||||||
LastSequenceNumber = table.Column<long>(type: "bigint", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_InboxState", x => x.Id);
|
|
||||||
table.UniqueConstraint("AK_InboxState_MessageId_ConsumerId", x => new { x.MessageId, x.ConsumerId });
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OutboxState",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
OutboxId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
LockId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
RowVersion = table.Column<byte[]>(type: "bytea", rowVersion: true, nullable: true),
|
|
||||||
Created = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
||||||
Delivered = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
||||||
LastSequenceNumber = table.Column<long>(type: "bigint", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OutboxState", x => x.OutboxId);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OutboxMessage",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
SequenceNumber = table.Column<long>(type: "bigint", nullable: false)
|
|
||||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
||||||
EnqueueTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
||||||
SentTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
||||||
Headers = table.Column<string>(type: "text", nullable: true),
|
|
||||||
Properties = table.Column<string>(type: "text", nullable: true),
|
|
||||||
InboxMessageId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
InboxConsumerId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
OutboxId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
MessageId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
ContentType = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
||||||
MessageType = table.Column<string>(type: "text", nullable: false),
|
|
||||||
Body = table.Column<string>(type: "text", nullable: false),
|
|
||||||
ConversationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
CorrelationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
InitiatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
RequestId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
||||||
SourceAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
||||||
DestinationAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
||||||
ResponseAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
||||||
FaultAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
||||||
ExpirationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OutboxMessage", x => x.SequenceNumber);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OutboxMessage_InboxState_InboxMessageId_InboxConsumerId",
|
|
||||||
columns: x => new { x.InboxMessageId, x.InboxConsumerId },
|
|
||||||
principalTable: "InboxState",
|
|
||||||
principalColumns: new[] { "MessageId", "ConsumerId" });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OutboxMessage_OutboxState_OutboxId",
|
|
||||||
column: x => x.OutboxId,
|
|
||||||
principalTable: "OutboxState",
|
|
||||||
principalColumn: "OutboxId");
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_InboxState_Delivered",
|
|
||||||
table: "InboxState",
|
|
||||||
column: "Delivered");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OutboxMessage_EnqueueTime",
|
|
||||||
table: "OutboxMessage",
|
|
||||||
column: "EnqueueTime");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OutboxMessage_ExpirationTime",
|
|
||||||
table: "OutboxMessage",
|
|
||||||
column: "ExpirationTime");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OutboxMessage_InboxMessageId_InboxConsumerId_SequenceNumber",
|
|
||||||
table: "OutboxMessage",
|
|
||||||
columns: new[] { "InboxMessageId", "InboxConsumerId", "SequenceNumber" },
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OutboxMessage_OutboxId_SequenceNumber",
|
|
||||||
table: "OutboxMessage",
|
|
||||||
columns: new[] { "OutboxId", "SequenceNumber" },
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OutboxState_Created",
|
|
||||||
table: "OutboxState",
|
|
||||||
column: "Created");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OutboxMessage");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "InboxState");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OutboxState");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-518
@@ -1,518 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
using Musify.Infrastructure.Persistence;
|
|
||||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(Database))]
|
|
||||||
[Migration("20260514161518_AddLifeCycleStatus")]
|
|
||||||
partial class AddLifeCycleStatus
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "10.0.5")
|
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.InboxState", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Consumed")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("ConsumerId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Delivered")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("ExpirationTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<long?>("LastSequenceNumber")
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
b.Property<Guid>("LockId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("MessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<int>("ReceiveCount")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<DateTime>("Received")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<byte[]>("RowVersion")
|
|
||||||
.IsConcurrencyToken()
|
|
||||||
.ValueGeneratedOnAddOrUpdate()
|
|
||||||
.HasColumnType("bytea");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("Delivered");
|
|
||||||
|
|
||||||
b.ToTable("InboxState");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("SequenceNumber")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("SequenceNumber"));
|
|
||||||
|
|
||||||
b.Property<string>("Body")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<string>("ContentType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<Guid?>("ConversationId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("CorrelationId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("DestinationAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("EnqueueTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("ExpirationTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("FaultAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<string>("Headers")
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InboxConsumerId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InboxMessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid?>("InitiatorId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("MessageId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("MessageType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("OutboxId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("Properties")
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<Guid?>("RequestId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("ResponseAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("SentTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("SourceAddress")
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.HasKey("SequenceNumber");
|
|
||||||
|
|
||||||
b.HasIndex("EnqueueTime");
|
|
||||||
|
|
||||||
b.HasIndex("ExpirationTime");
|
|
||||||
|
|
||||||
b.HasIndex("OutboxId", "SequenceNumber")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("InboxMessageId", "InboxConsumerId", "SequenceNumber")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("OutboxMessage");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxState", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("OutboxId")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("Created")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("Delivered")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<long?>("LastSequenceNumber")
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
b.Property<Guid>("LockId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<byte[]>("RowVersion")
|
|
||||||
.IsConcurrencyToken()
|
|
||||||
.ValueGeneratedOnAddOrUpdate()
|
|
||||||
.HasColumnType("bytea");
|
|
||||||
|
|
||||||
b.HasKey("OutboxId");
|
|
||||||
|
|
||||||
b.HasIndex("Created");
|
|
||||||
|
|
||||||
b.ToTable("OutboxState");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Description")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(256)
|
|
||||||
.HasColumnType("character varying(256)");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("LifeCycleStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("PlayLists");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<Guid>("PlayListId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<int>("Position")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlayListId");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.ToTable("PlayListHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("AudioFolderName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("AudioTranscodeProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("LargePictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastRetryAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<int>("LifeCycleStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<string>("MediumPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedTitle")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalAudioName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("OriginalPictureName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<int>("PicturesProcessingStatus")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<int>("RetryCount")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.Property<string>("SmallPictureName")
|
|
||||||
.HasMaxLength(64)
|
|
||||||
.HasColumnType("character varying(64)");
|
|
||||||
|
|
||||||
b.Property<string>("Title")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnType("character varying(50)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedDate")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Tracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Upload", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<string>("Bucket")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<string>("ContentType")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedTime")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("Key")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text");
|
|
||||||
|
|
||||||
b.Property<int>("State")
|
|
||||||
.HasColumnType("integer");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Upload");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.Property<string>("FirstName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<string>("SecondName")
|
|
||||||
.HasMaxLength(48)
|
|
||||||
.HasColumnType("character varying(48)");
|
|
||||||
|
|
||||||
b.Property<DateTime>("UpdatedAt")
|
|
||||||
.HasColumnType("timestamp with time zone");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("TrackId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("TrackId");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("UserHasTrack");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("MassTransit.EntityFrameworkCoreIntegration.OutboxState", null)
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("OutboxId");
|
|
||||||
|
|
||||||
b.HasOne("MassTransit.EntityFrameworkCoreIntegration.InboxState", null)
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("InboxMessageId", "InboxConsumerId")
|
|
||||||
.HasPrincipalKey("MessageId", "ConsumerId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("PlayLists")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.PlayList", "PlayList")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("PlayListId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("PlayListTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("PlayList");
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Musify.Domain.Entities.Track", "Track")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("TrackId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasOne("Musify.Domain.Entities.User", "User")
|
|
||||||
.WithMany("UserTracks")
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Track");
|
|
||||||
|
|
||||||
b.Navigation("User");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayListTracks");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("PlayLists");
|
|
||||||
|
|
||||||
b.Navigation("UserTracks");
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class AddLifeCycleStatus : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "LifeCycleStatus",
|
|
||||||
table: "Tracks",
|
|
||||||
type: "integer",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "LifeCycleStatus",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "integer",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "LifeCycleStatus",
|
|
||||||
table: "Tracks");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "LifeCycleStatus",
|
|
||||||
table: "PlayLists");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class AddUploadIntentTable : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "UploadIntents",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
||||||
Bucket = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
||||||
Key = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
|
||||||
ObjectName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
||||||
ContentType = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
||||||
ExpectedSizeBytes = table.Column<long>(type: "bigint", nullable: true),
|
|
||||||
Purpose = table.Column<int>(type: "integer", nullable: false),
|
|
||||||
Status = table.Column<int>(type: "integer", nullable: false),
|
|
||||||
ExpiresAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
||||||
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_UploadIntents", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_UploadIntents_User_UserId",
|
|
||||||
column: x => x.UserId,
|
|
||||||
principalTable: "User",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_UploadIntents_UserId",
|
|
||||||
table: "UploadIntents",
|
|
||||||
column: "UserId");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "UploadIntents");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+11
-12
@@ -12,15 +12,15 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
namespace Musify.Infrastructure.Persistence.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(Database))]
|
[DbContext(typeof(Database))]
|
||||||
[Migration("20260514172047_AddUploadIntentTable")]
|
[Migration("20260530020027_InitialCreate")]
|
||||||
partial class AddUploadIntentTable
|
partial class InitialCreate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "10.0.5")
|
.HasAnnotation("ProductVersion", "10.0.8")
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
@@ -243,8 +243,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<DateTime>("UpdatedDate")
|
b.Property<DateTime>("UpdatedDate")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
@@ -418,8 +418,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<int>("Status")
|
b.Property<int>("Status")
|
||||||
.HasColumnType("integer");
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
@@ -430,9 +430,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<long>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.HasColumnType("bigint");
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedAt")
|
b.Property<DateTime>("CreatedAt")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
@@ -472,8 +471,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<Guid>("TrackId")
|
b.Property<Guid>("TrackId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
+164
-4
@@ -1,16 +1,56 @@
|
|||||||
using System;
|
using System;
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
namespace Musify.Infrastructure.Persistence.Migrations
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public partial class FirstMigration : Migration
|
public partial class InitialCreate : Migration
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
{
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "InboxState",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
MessageId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
ConsumerId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
LockId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
RowVersion = table.Column<byte[]>(type: "bytea", rowVersion: true, nullable: true),
|
||||||
|
Received = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
ReceiveCount = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
ExpirationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
Consumed = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
Delivered = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
LastSequenceNumber = table.Column<long>(type: "bigint", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_InboxState", x => x.Id);
|
||||||
|
table.UniqueConstraint("AK_InboxState_MessageId_ConsumerId", x => new { x.MessageId, x.ConsumerId });
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "OutboxState",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
OutboxId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
LockId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
RowVersion = table.Column<byte[]>(type: "bytea", rowVersion: true, nullable: true),
|
||||||
|
Created = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
Delivered = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
LastSequenceNumber = table.Column<long>(type: "bigint", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_OutboxState", x => x.OutboxId);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "Tracks",
|
name: "Tracks",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
@@ -26,6 +66,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
AudioFolderName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: true),
|
AudioFolderName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: true),
|
||||||
PicturesProcessingStatus = table.Column<int>(type: "integer", nullable: false),
|
PicturesProcessingStatus = table.Column<int>(type: "integer", nullable: false),
|
||||||
AudioTranscodeProcessingStatus = table.Column<int>(type: "integer", nullable: false),
|
AudioTranscodeProcessingStatus = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
LifeCycleStatus = table.Column<int>(type: "integer", nullable: false),
|
||||||
RetryCount = table.Column<int>(type: "integer", nullable: false),
|
RetryCount = table.Column<int>(type: "integer", nullable: false),
|
||||||
LastRetryAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
LastRetryAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
CreatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
CreatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
@@ -56,7 +97,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
name: "User",
|
name: "User",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
{
|
{
|
||||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
Id = table.Column<long>(type: "bigint", nullable: false),
|
||||||
Name = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: false),
|
Name = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: false),
|
||||||
NormalizedName = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: false),
|
NormalizedName = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: false),
|
||||||
FirstName = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: true),
|
FirstName = table.Column<string>(type: "character varying(48)", maxLength: 48, nullable: true),
|
||||||
@@ -69,12 +110,54 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
table.PrimaryKey("PK_User", x => x.Id);
|
table.PrimaryKey("PK_User", x => x.Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "OutboxMessage",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
SequenceNumber = table.Column<long>(type: "bigint", nullable: false)
|
||||||
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||||
|
EnqueueTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||||
|
SentTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
Headers = table.Column<string>(type: "text", nullable: true),
|
||||||
|
Properties = table.Column<string>(type: "text", nullable: true),
|
||||||
|
InboxMessageId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
InboxConsumerId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
OutboxId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
MessageId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
ContentType = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
||||||
|
MessageType = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Body = table.Column<string>(type: "text", nullable: false),
|
||||||
|
ConversationId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
CorrelationId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
InitiatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
RequestId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||||
|
SourceAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
DestinationAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
ResponseAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
FaultAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||||
|
ExpirationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_OutboxMessage", x => x.SequenceNumber);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_OutboxMessage_InboxState_InboxMessageId_InboxConsumerId",
|
||||||
|
columns: x => new { x.InboxMessageId, x.InboxConsumerId },
|
||||||
|
principalTable: "InboxState",
|
||||||
|
principalColumns: new[] { "MessageId", "ConsumerId" });
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_OutboxMessage_OutboxState_OutboxId",
|
||||||
|
column: x => x.OutboxId,
|
||||||
|
principalTable: "OutboxState",
|
||||||
|
principalColumn: "OutboxId");
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "PlayLists",
|
name: "PlayLists",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
{
|
{
|
||||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
Name = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
|
Name = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
|
||||||
NormalizedName = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
|
NormalizedName = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
|
||||||
Description = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
Description = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
||||||
@@ -82,6 +165,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
SmallPictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
SmallPictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
||||||
MediumPictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
MediumPictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
||||||
LargePictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
LargePictureName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
||||||
|
LifeCycleStatus = table.Column<int>(type: "integer", nullable: false),
|
||||||
CreatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
CreatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
UpdatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
UpdatedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
||||||
},
|
},
|
||||||
@@ -96,12 +180,39 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
onDelete: ReferentialAction.Cascade);
|
onDelete: ReferentialAction.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "UploadIntents",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
|
Bucket = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||||
|
Key = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
||||||
|
ObjectName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||||
|
ContentType = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||||
|
ExpectedSizeBytes = table.Column<long>(type: "bigint", nullable: true),
|
||||||
|
Purpose = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
Status = table.Column<int>(type: "integer", nullable: false),
|
||||||
|
ExpiresAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||||
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_UploadIntents", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_UploadIntents_User_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "User",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "UserHasTrack",
|
name: "UserHasTrack",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
{
|
{
|
||||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
UserId = table.Column<long>(type: "bigint", nullable: false),
|
||||||
TrackId = table.Column<Guid>(type: "uuid", nullable: false)
|
TrackId = table.Column<Guid>(type: "uuid", nullable: false)
|
||||||
},
|
},
|
||||||
constraints: table =>
|
constraints: table =>
|
||||||
@@ -148,6 +259,38 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
onDelete: ReferentialAction.Cascade);
|
onDelete: ReferentialAction.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_InboxState_Delivered",
|
||||||
|
table: "InboxState",
|
||||||
|
column: "Delivered");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_OutboxMessage_EnqueueTime",
|
||||||
|
table: "OutboxMessage",
|
||||||
|
column: "EnqueueTime");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_OutboxMessage_ExpirationTime",
|
||||||
|
table: "OutboxMessage",
|
||||||
|
column: "ExpirationTime");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_OutboxMessage_InboxMessageId_InboxConsumerId_SequenceNumber",
|
||||||
|
table: "OutboxMessage",
|
||||||
|
columns: new[] { "InboxMessageId", "InboxConsumerId", "SequenceNumber" },
|
||||||
|
unique: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_OutboxMessage_OutboxId_SequenceNumber",
|
||||||
|
table: "OutboxMessage",
|
||||||
|
columns: new[] { "OutboxId", "SequenceNumber" },
|
||||||
|
unique: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_OutboxState_Created",
|
||||||
|
table: "OutboxState",
|
||||||
|
column: "Created");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_PlayListHasTrack_PlayListId",
|
name: "IX_PlayListHasTrack_PlayListId",
|
||||||
table: "PlayListHasTrack",
|
table: "PlayListHasTrack",
|
||||||
@@ -163,6 +306,11 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
table: "PlayLists",
|
table: "PlayLists",
|
||||||
column: "UserId");
|
column: "UserId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_UploadIntents_UserId",
|
||||||
|
table: "UploadIntents",
|
||||||
|
column: "UserId");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_UserHasTrack_TrackId",
|
name: "IX_UserHasTrack_TrackId",
|
||||||
table: "UserHasTrack",
|
table: "UserHasTrack",
|
||||||
@@ -177,15 +325,27 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
{
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "OutboxMessage");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "PlayListHasTrack");
|
name: "PlayListHasTrack");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Upload");
|
name: "Upload");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "UploadIntents");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "UserHasTrack");
|
name: "UserHasTrack");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "InboxState");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "OutboxState");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "PlayLists");
|
name: "PlayLists");
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "10.0.5")
|
.HasAnnotation("ProductVersion", "10.0.8")
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
@@ -240,8 +240,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<DateTime>("UpdatedDate")
|
b.Property<DateTime>("UpdatedDate")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
@@ -415,8 +415,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<int>("Status")
|
b.Property<int>("Status")
|
||||||
.HasColumnType("integer");
|
.HasColumnType("integer");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
@@ -427,9 +427,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<long>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.HasColumnType("bigint");
|
||||||
.HasColumnType("uuid");
|
|
||||||
|
|
||||||
b.Property<DateTime>("CreatedAt")
|
b.Property<DateTime>("CreatedAt")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
@@ -469,8 +468,8 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<Guid>("TrackId")
|
b.Property<Guid>("TrackId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
b.Property<Guid>("UserId")
|
b.Property<long>("UserId")
|
||||||
.HasColumnType("uuid");
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Musify.Infrastructure.Services
|
|||||||
signingCredentials = new SigningCredentials(key, SecurityAlgorithms.RsaSha256);
|
signingCredentials = new SigningCredentials(key, SecurityAlgorithms.RsaSha256);
|
||||||
}
|
}
|
||||||
|
|
||||||
public StreamTicket IssueTicket(Guid userId, string keyPrefix)
|
public StreamTicket IssueTicket(long userId, string keyPrefix)
|
||||||
{
|
{
|
||||||
var now = DateTimeOffset.UtcNow;
|
var now = DateTimeOffset.UtcNow;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user