Index: KernelRecordsMVC.Domain/Models/Admin.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Admin.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Admin.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,17 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class Admin
+{
+    public long UserId { get; set; }
+
+    public AdminType Type { get; set; }
+
+    public decimal DiscountPercentage { get; set; }
+
+    public User User { get; set; } = null!;
+
+    public ICollection<Modification> Modifications { get; set; }
+        = new List<Modification>();
+}
Index: KernelRecordsMVC.Domain/Models/Album.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Album.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Album.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,11 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Album
+{
+    public long ReleaseId { get; set; }
+
+    public Release Release { get; set; } = null!;
+
+    public ICollection<AlbumSong> AlbumSongs { get; set; }
+        = new List<AlbumSong>();
+}
Index: KernelRecordsMVC.Domain/Models/AlbumSong.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/AlbumSong.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/AlbumSong.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,12 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class AlbumSong
+{
+    public long AlbumId { get; set; }
+
+    public long SongId { get; set; }
+
+    public Album Album { get; set; } = null!;
+
+    public Song Song { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/Artist.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Artist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Artist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,18 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Artist
+{
+    public long ArtistId { get; set; }
+
+    public string ArtistName { get; set; } = null!;
+
+    public string? ArtistDescription { get; set; }
+
+    public string? ArtistPhoto { get; set; }
+
+    public ICollection<ReleaseArtist> ReleaseArtists { get; set; }
+        = new List<ReleaseArtist>();
+
+    public ICollection<SongArtist> SongArtists { get; set; }
+        = new List<SongArtist>();
+}
Index: KernelRecordsMVC.Domain/Models/Consumer.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Consumer.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Consumer.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,10 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Consumer
+{
+    public long UserId { get; set; }
+
+    public long PointsCollected { get; set; }
+
+    public User User { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/ErrorViewModel.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/ErrorViewModel.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/ErrorViewModel.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,8 @@
+namespace KernelRecordsMVC.Models;
+
+public class ErrorViewModel
+{
+    public string? RequestId { get; set; }
+
+    public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
+}
Index: KernelRecordsMVC.Domain/Models/Modification.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Modification.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Modification.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,21 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class Modification
+{
+    public long ModificationId { get; set; }
+
+    public long AdminId { get; set; }
+
+    public DateTime DateModified { get; set; }
+
+    public ModificationType TypeOfModification { get; set; }
+
+    public decimal? Discount { get; set; }
+
+    public Admin Admin { get; set; } = null!;
+
+    public ICollection<ModificationProduct> ModificationProducts { get; set; }
+        = new List<ModificationProduct>();
+}
Index: KernelRecordsMVC.Domain/Models/ModificationProduct.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/ModificationProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/ModificationProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,12 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class ModificationProduct
+{
+    public long ModificationId { get; set; }
+
+    public long ProductId { get; set; }
+
+    public Modification Modification { get; set; } = null!;
+
+    public Product Product { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/Order.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Order.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Order.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,25 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class Order
+{
+    public long OrderId { get; set; }
+
+    public long UserId { get; set; }
+
+    public PaymentMethodType PaymentMethod { get; set; }
+
+    public DateTime PurchaseDate { get; set; }
+
+    public long PointsEarned { get; set; }
+
+    public long? PointsUsed { get; set; }
+
+    public OrderStatusType Status { get; set; }
+
+    public User User { get; set; } = null!;
+
+    public ICollection<OrderProduct> OrderProducts { get; set; }
+        = new List<OrderProduct>();
+}
Index: KernelRecordsMVC.Domain/Models/OrderProduct.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/OrderProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/OrderProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,18 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class OrderProduct
+{
+    public long OrderId { get; set; }
+
+    public long ProductId { get; set; }
+
+    public decimal PriceAtPurchase { get; set; }
+
+    public long Quantity { get; set; }
+
+    public Order Order { get; set; } = null!;
+
+    public Product Product { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/Product.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Product.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Product.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,29 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class Product
+{
+    public long ProductId { get; set; }
+
+    public long ReleaseId { get; set; }
+
+    public ProductFormat Format { get; set; }
+
+    public decimal Price { get; set; }
+
+    public string ProductDescription { get; set; } = null!;
+
+    public long Stock { get; set; }
+
+    public Release Release { get; set; } = null!;
+
+    public ICollection<OrderProduct> OrderProducts { get; set; }
+        = new List<OrderProduct>();
+
+    public ICollection<WishlistProduct> WishlistProducts { get; set; }
+        = new List<WishlistProduct>();
+
+    public ICollection<ModificationProduct> ModificationProducts { get; set; }
+        = new List<ModificationProduct>();
+}
Index: KernelRecordsMVC.Domain/Models/Release.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Release.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Release.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,26 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Release
+{
+    public long ReleaseId { get; set; }
+
+    public string Title { get; set; } = null!;
+
+    public string? RecordLabel { get; set; }
+
+    public string Genre { get; set; } = null!;
+
+    public DateTime ReleaseDate { get; set; }
+
+    public string CoverPhoto { get; set; } = null!;
+
+    public Album? Album { get; set; }
+
+    public SingleRelease? SingleRelease { get; set; }
+
+    public ICollection<Product> Products { get; set; }
+        = new List<Product>();
+
+    public ICollection<ReleaseArtist> ReleaseArtists { get; set; }
+        = new List<ReleaseArtist>();
+}
Index: KernelRecordsMVC.Domain/Models/ReleaseArtist.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/ReleaseArtist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/ReleaseArtist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,18 @@
+﻿using KernelRecordsMVC.Domain.Enums;
+
+namespace KernelRecordsMVC.Models;
+
+public class ReleaseArtist
+{
+    public long ReleaseId { get; set; }
+
+    public long ArtistId { get; set; }
+
+    public long ReleaseOrdinal { get; set; }
+
+    public ArtistReleaseType Type { get; set; }
+
+    public Release Release { get; set; } = null!;
+
+    public Artist Artist { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/SingleFeature.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/SingleFeature.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/SingleFeature.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,12 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class SingleFeature
+{
+    public long SingleId { get; set; }
+
+    public long SongId { get; set; }
+
+    public SingleRelease Single { get; set; } = null!;
+
+    public Song Song { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/SingleRelease.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/SingleRelease.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/SingleRelease.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,13 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class SingleRelease
+{
+    public long ReleaseId { get; set; }
+
+    public string Duration { get; set; } = null!;
+
+    public Release Release { get; set; } = null!;
+
+    public ICollection<SingleFeature> SingleFeatures { get; set; }
+        = new List<SingleFeature>();
+}
Index: KernelRecordsMVC.Domain/Models/Song.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Song.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Song.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,19 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Song
+{
+    public long SongId { get; set; }
+
+    public string SongName { get; set; } = null!;
+
+    public string SongDuration { get; set; } = null!;
+
+    public ICollection<AlbumSong> AlbumSongs { get; set; }
+        = new List<AlbumSong>();
+
+    public ICollection<SongArtist> SongArtists { get; set; }
+        = new List<SongArtist>();
+
+    public ICollection<SingleFeature> SingleFeatures { get; set; }
+        = new List<SingleFeature>();
+}
Index: KernelRecordsMVC.Domain/Models/SongArtist.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/SongArtist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/SongArtist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,14 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class SongArtist
+{
+    public long SongId { get; set; }
+
+    public long ArtistId { get; set; }
+
+    public long SongOrdinal { get; set; }
+
+    public Song Song { get; set; } = null!;
+
+    public Artist Artist { get; set; } = null!;
+}
Index: KernelRecordsMVC.Domain/Models/User.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/User.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/User.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,26 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class User
+{
+    public long UserId { get; set; }
+
+    public string Email { get; set; } = null!;
+
+    public string Username { get; set; } = null!;
+
+    public string Password { get; set; } = null!;
+
+    public DateTime DateCreated { get; set; }
+
+    public string? ShippingAddress { get; set; }
+
+    public string? TelephoneNumber { get; set; }
+
+    public Admin? Admin { get; set; }
+
+    public Consumer? Consumer { get; set; }
+
+    public ICollection<Order> Orders { get; set; } = new List<Order>();
+
+    public Wishlist? Wishlist { get; set; }
+}
Index: KernelRecordsMVC.Domain/Models/Wishlist.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/Wishlist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/Wishlist.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,13 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class Wishlist
+{
+    public long WishlistId { get; set; }
+
+    public long UserId { get; set; }
+
+    public User User { get; set; } = null!;
+
+    public ICollection<WishlistProduct> WishlistProducts { get; set; }
+        = new List<WishlistProduct>();
+}
Index: KernelRecordsMVC.Domain/Models/WishlistProduct.cs
===================================================================
--- KernelRecordsMVC.Domain/Models/WishlistProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
+++ KernelRecordsMVC.Domain/Models/WishlistProduct.cs	(revision 08aefc6f3b51f4bfcb7471a2fd319c064171b1c5)
@@ -0,0 +1,14 @@
+﻿namespace KernelRecordsMVC.Models;
+
+public class WishlistProduct
+{
+    public long WishlistId { get; set; }
+
+    public long ProductId { get; set; }
+
+    public DateTime AddedAt { get; set; }
+
+    public Wishlist Wishlist { get; set; } = null!;
+
+    public Product Product { get; set; } = null!;
+}
