Clean up domain entities: shared picture value object, lifecycle and ownership interfaces, explicit tables
This commit is contained in:
@@ -5,17 +5,15 @@ using Musify.Domain.ValueObjects;
|
||||
|
||||
namespace Musify.Domain.Entities;
|
||||
|
||||
#pragma warning disable CS8618
|
||||
public class Album : IAuditable
|
||||
[Table("Albums")]
|
||||
public class Album : IAuditable, IHasLifeCycle, IOwnedEntity
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
|
||||
[Required]
|
||||
[MaxLength(200)]
|
||||
public required string Title { get; set; }
|
||||
|
||||
[Required]
|
||||
[MaxLength(200)]
|
||||
public required string NormalizedTitle { get; set; }
|
||||
|
||||
@@ -24,21 +22,17 @@ public class Album : IAuditable
|
||||
|
||||
public int? ReleaseYear { get; set; }
|
||||
|
||||
public AlbumPictures? Pictures { get; set; }
|
||||
public EntityPictures? Pictures { get; set; }
|
||||
|
||||
[Required]
|
||||
public required long OwnerUserId { get; set; }
|
||||
|
||||
[ForeignKey(nameof(OwnerUserId))]
|
||||
public User Owner { get; set; }
|
||||
public User Owner { get; set; } = null!;
|
||||
|
||||
[Required]
|
||||
public LifeCycleStatus LifeCycleStatus { get; set; } = LifeCycleStatus.Active;
|
||||
|
||||
[Required]
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
[Required]
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
public ICollection<AlbumHasTrack> AlbumTracks { get; set; } = new List<AlbumHasTrack>();
|
||||
|
||||
Reference in New Issue
Block a user