First Commit

This commit is contained in:
2026-03-18 01:14:49 +01:00
commit 306248b11c
39 changed files with 1361 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Musify.Domain.Entities
{
#pragma warning disable CS8618
[Table("PlayLists")]
public class PlayList
{
[Key]
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
public required Guid UserId { get; set; }
[Required]
[MaxLength(50)]
public required string Name { get; set; }
[Required]
[MaxLength(50)]
public required string NormalizedName { get; set; }
[Required]
[MaxLength(254)]
public required string Description { get; set; } = "No description was provided.";
[Required]
[MaxLength(64)]
public required string ImageName { get; set; }
[Required]
public DateTime CreatedDate { get; set; } = DateTime.UtcNow;
[Required]
public DateTime UpdatedDate { get; set; } = DateTime.UtcNow;
[ForeignKey(nameof(UserId)) ]
public User User { get; set; }
public ICollection<PlayListHasTrack> PlayListTracks { get; set; } = new List<PlayListHasTrack>();
}
}
@@ -0,0 +1,30 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Musify.Domain.Entities
{
#pragma warning disable CS8618
[Table("PlayListHasTrack")]
public class PlayListHasTrack
{
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
public required Guid PlayListId { get; set; }
[Required]
public required Guid TrackId { get; set; }
[Required]
public int Position { get; set; } = 0;
[Required]
public DateTime AddedAt { get; set; } = DateTime.UtcNow;
[ForeignKey(nameof(PlayListId)) ]
public PlayList PlayList { get; set; }
[ForeignKey(nameof(TrackId)) ]
public Track? Track { get; set; }
}
}
+33
View File
@@ -0,0 +1,33 @@
using System.ComponentModel.DataAnnotations;
namespace Musify.Domain.Entities
{
#pragma warning disable CS8618
public class Track
{
[Key]
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
[MaxLength(50)]
public required string Title { get; set; }
[Required]
[MaxLength(50)]
public required string NormalizedTitle { get; set; }
[Required]
[MaxLength(64)]
public required string ImageName { get; set; }
[Required]
public DateTime CreatedDate { get; set; } = DateTime.UtcNow;
[Required]
public DateTime UpdatedDate { get; set; } = DateTime.UtcNow;
public ICollection<User> Users { get; set; } = new List<User>();
public ICollection<PlayListHasTrack> PlayListTracks { get; set; } = new List<PlayListHasTrack>();
}
}
+22
View File
@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Musify.Domain.Entities
{
[Table("User")]
public class User
{
[Key]
public required Guid Id { get; set; }
[Required]
public DateTime CreatedAt { get; set; } = DateTime.Now;
[Required]
public DateTime UpdatedAt { get; set; } = DateTime.Now;
public ICollection<Track> Tracks { get; set; } = new List<Track>();
public ICollection<PlayList> PlayLists { get; set; } = new List<PlayList>();
}
}