Index: KernelRecordsMVC.Application/ViewModels/CartItemViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/CartItemViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/CartItemViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -16,4 +16,6 @@
 
     public long Stock { get; set; }
+    
+    public string? CoverPhoto { get; set; }
 
     public decimal Total =>
Index: KernelRecordsMVC.Application/ViewModels/CreateReleaseViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/CreateReleaseViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/CreateReleaseViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,6 +1,69 @@
-﻿namespace KernelRecordsMVC.Application.ViewModels;
+﻿using System.ComponentModel.DataAnnotations;
+
+namespace KernelRecordsMVC.Application.ViewModels;
 
 public class CreateReleaseViewModel
 {
-    
+    // ==========================================
+    // RELEASE
+    // ==========================================
+
+    [Required]
+    [StringLength(200)]
+    public string Title { get; set; } = string.Empty;
+
+
+    [Display(Name = "Record Label")]
+    [StringLength(200)]
+    public string? RecordLabel { get; set; }
+
+
+    [Required]
+    [StringLength(100)]
+    public string Genre { get; set; } = string.Empty;
+
+
+    [Required]
+    [Display(Name = "Release Date")]
+    [DataType(DataType.Date)]
+    public DateTime ReleaseDate { get; set; } = DateTime.Today;
+
+
+    [Required]
+    [Display(Name = "Cover Photo")]
+    public string CoverPhoto { get; set; } = string.Empty;
+
+
+    // ALBUM or SINGLE
+    [Required]
+    [Display(Name = "Release Type")]
+    public string ReleaseType { get; set; } = "ALBUM";
+
+
+    // ==========================================
+    // ARTISTS
+    // ==========================================
+
+    [Required]
+    [Display(Name = "Main Artist")]
+    public long MainArtistId { get; set; }
+
+
+    [Display(Name = "Featured Artists")]
+    public List<long> FeaturedArtistIds { get; set; } = new();
+
+
+    // ==========================================
+    // SINGLE
+    // ==========================================
+
+    [Display(Name = "Single Duration")]
+    public string? SingleDuration { get; set; }
+
+
+    // ==========================================
+    // ALBUM
+    // ==========================================
+
+    public List<CreateTrackViewModel> Tracks { get; set; } = new();
 }
Index: KernelRecordsMVC.Application/ViewModels/CreateTrackViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/CreateTrackViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/CreateTrackViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,6 +1,19 @@
-﻿namespace KernelRecordsMVC.Application.ViewModels;
+﻿using System.ComponentModel.DataAnnotations;
+
+namespace KernelRecordsMVC.Application.ViewModels;
 
 public class CreateTrackViewModel
 {
-    
+    [Required]
+    [Display(Name = "Track Name")]
+    public string SongName { get; set; } = string.Empty;
+
+
+    [Required]
+    [Display(Name = "Duration")]
+    public string SongDuration { get; set; } = string.Empty;
+
+
+    [Display(Name = "Track Artists")]
+    public List<long> ArtistIds { get; set; } = new();
 }
Index: KernelRecordsMVC.Application/ViewModels/EditProductViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/EditProductViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/EditProductViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,7 +1,5 @@
-﻿namespace KernelRecordsMVC.Application.ViewModels;
-
-using System.ComponentModel.DataAnnotations;
+﻿using System.ComponentModel.DataAnnotations;
 using KernelRecordsMVC.Domain.Enums;
-
+namespace KernelRecordsMVC.Application.ViewModels;
 
 public class EditProductViewModel
Index: KernelRecordsMVC.Application/ViewModels/ProfileViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/ProfileViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/ProfileViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,6 +1,23 @@
-﻿namespace KernelRecordsMVC.Application.ViewModels;
+﻿using System.ComponentModel.DataAnnotations;
+
+namespace KernelRecordsMVC.Application.ViewModels;
 
 public class ProfileViewModel
 {
-    
+    public long UserId { get; set; }
+
+    public string Username { get; set; } = null!;
+
+    [Required]
+    [EmailAddress]
+    public string Email { get; set; } = null!;
+
+    [Phone]
+    public string? TelephoneNumber { get; set; }
+
+    public string? ShippingAddress { get; set; }
+
+    public DateTime DateCreated { get; set; }
+
+    public long PointsCollected { get; set; }
 }
Index: KernelRecordsMVC.Application/ViewModels/SaleItemViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/SaleItemViewModel.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/ViewModels/SaleItemViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -3,4 +3,22 @@
 public class SaleItemViewModel
 {
-    
+    public long ProductId { get; set; }
+
+    public long ReleaseId { get; set; }
+
+    public string ReleaseTitle { get; set; } = null!;
+
+    public string? CoverPhoto { get; set; }
+
+    public string Format { get; set; } = null!;
+
+    public decimal OriginalPrice { get; set; }
+
+    public decimal SalePrice { get; set; }
+
+    public decimal DiscountPercentage { get; set; }
+
+    public long Stock { get; set; }
+
+    public string ArtistName { get; set; } = null!;
 }
Index: KernelRecordsMVC.Application/ViewModels/TopSellerViewModel.cs
===================================================================
--- KernelRecordsMVC.Application/ViewModels/TopSellerViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
+++ KernelRecordsMVC.Application/ViewModels/TopSellerViewModel.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -0,0 +1,22 @@
+﻿namespace KernelRecordsMVC.Application.ViewModels;
+
+public class TopSellerViewModel
+{
+    public long ProductId { get; set; }
+
+    public long ReleaseId { get; set; }
+
+    public string ReleaseTitle { get; set; } = null!;
+
+    public string? CoverPhoto { get; set; }
+
+    public string Format { get; set; } = null!;
+
+    public decimal Price { get; set; }
+
+    public long Stock { get; set; }
+
+    public long SoldQuantity { get; set; }
+
+    public string ArtistName { get; set; } = null!;
+}
Index: KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfo.cs
===================================================================
--- KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfo.cs	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfo.cs	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -14,5 +14,5 @@
 [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+08aefc6f3b51f4bfcb7471a2fd319c064171b1c5")]
 [assembly: System.Reflection.AssemblyProductAttribute("KernelRecordsMVC.Application")]
 [assembly: System.Reflection.AssemblyTitleAttribute("KernelRecordsMVC.Application")]
Index: KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfoInputs.cache
===================================================================
--- KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfoInputs.cache	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.AssemblyInfoInputs.cache	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,1 +1,1 @@
-e1328abe16b4d3d6b149631015b22e09c79c757f8e83e00fec1bda3b4266d18b
+be6a89e2db3aa8112c2a3ae4c32c04b7e8b25d03049e0dfebf9780211ea8ddb1
Index: KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.CoreCompileInputs.cache
===================================================================
--- KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.CoreCompileInputs.cache	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.CoreCompileInputs.cache	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,1 +1,1 @@
-7be670584cff69f4c3781a6b17dc489406673780bfe6603fbced09fe0987e3b0
+9f4ef03cf908860b9dd6d42a9604d053d9bc8564dfa0df3b05a4e677034a8ff2
Index: KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.FileListAbsolute.txt
===================================================================
--- KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.FileListAbsolute.txt	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.csproj.FileListAbsolute.txt	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -9,4 +9,5 @@
 C:\Users\Marko\RiderProjects\KernelRecordsMVC\KernelRecordsMVC.Application\obj\Debug\net8.0\KernelRecordsMVC.Application.AssemblyInfo.cs
 C:\Users\Marko\RiderProjects\KernelRecordsMVC\KernelRecordsMVC.Application\obj\Debug\net8.0\KernelRecordsMVC.Application.csproj.CoreCompileInputs.cache
+C:\Users\Marko\RiderProjects\KernelRecordsMVC\KernelRecordsMVC.Application\obj\Debug\net8.0\KernelRecordsMVC.Application.sourcelink.json
 C:\Users\Marko\RiderProjects\KernelRecordsMVC\KernelRecordsMVC.Application\obj\Debug\net8.0\KernelRe.C07FDBC1.Up2Date
 C:\Users\Marko\RiderProjects\KernelRecordsMVC\KernelRecordsMVC.Application\obj\Debug\net8.0\KernelRecordsMVC.Application.dll
Index: KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.sourcelink.json
===================================================================
--- KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.sourcelink.json	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
+++ KernelRecordsMVC.Application/obj/Debug/net8.0/KernelRecordsMVC.Application.sourcelink.json	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -0,0 +1,1 @@
+{"documents":{"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\*":"https://raw.githubusercontent.com/mmilevski/kernelrecords/08aefc6f3b51f4bfcb7471a2fd319c064171b1c5/*"}}
Index: KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.dgspec.json
===================================================================
--- KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.dgspec.json	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.dgspec.json	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -69,5 +69,5 @@
             }
           },
-          "runtimeIdentifierGraphPath": "C:\\Users\\Marko\\.dotnet\\sdk\\8.0.422/PortableRuntimeIdentifierGraph.json"
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.424/PortableRuntimeIdentifierGraph.json"
         }
       }
@@ -133,5 +133,5 @@
             }
           },
-          "runtimeIdentifierGraphPath": "C:\\Users\\Marko\\.dotnet\\sdk\\8.0.422/PortableRuntimeIdentifierGraph.json"
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.424/PortableRuntimeIdentifierGraph.json"
         }
       }
Index: KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.g.props
===================================================================
--- KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.g.props	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/KernelRecordsMVC.Application.csproj.nuget.g.props	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -8,5 +8,5 @@
     <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Marko\.nuget\packages\</NuGetPackageFolders>
     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
-    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.2</NuGetToolVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
Index: KernelRecordsMVC.Application/obj/project.assets.json
===================================================================
--- KernelRecordsMVC.Application/obj/project.assets.json	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/project.assets.json	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -644,5 +644,5 @@
           }
         },
-        "runtimeIdentifierGraphPath": "C:\\Users\\Marko\\.dotnet\\sdk\\8.0.422/PortableRuntimeIdentifierGraph.json"
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.424/PortableRuntimeIdentifierGraph.json"
       }
     }
Index: KernelRecordsMVC.Application/obj/project.nuget.cache
===================================================================
--- KernelRecordsMVC.Application/obj/project.nuget.cache	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/project.nuget.cache	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,5 +1,5 @@
 {
   "version": 2,
-  "dgSpecHash": "2ClWmI1jUi8=",
+  "dgSpecHash": "5BQiffvyB0E=",
   "success": true,
   "projectFilePath": "C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\KernelRecordsMVC.Application.csproj",
Index: KernelRecordsMVC.Application/obj/project.packagespec.json
===================================================================
--- KernelRecordsMVC.Application/obj/project.packagespec.json	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/project.packagespec.json	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,1 +1,1 @@
-﻿"restore":{"projectUniqueName":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\KernelRecordsMVC.Application.csproj","projectName":"KernelRecordsMVC.Application","projectPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\KernelRecordsMVC.Application.csproj","packagesPath":"","outputPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Domain\\KernelRecordsMVC.Domain.csproj":{"projectPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Domain\\KernelRecordsMVC.Domain.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Users\\Marko\\.dotnet\\sdk\\8.0.422/PortableRuntimeIdentifierGraph.json"}}
+﻿"restore":{"projectUniqueName":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\KernelRecordsMVC.Application.csproj","projectName":"KernelRecordsMVC.Application","projectPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\KernelRecordsMVC.Application.csproj","packagesPath":"","outputPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Application\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Domain\\KernelRecordsMVC.Domain.csproj":{"projectPath":"C:\\Users\\Marko\\RiderProjects\\KernelRecordsMVC\\KernelRecordsMVC.Domain\\KernelRecordsMVC.Domain.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\8.0.424/PortableRuntimeIdentifierGraph.json"}}
Index: KernelRecordsMVC.Application/obj/rider.project.model.nuget.info
===================================================================
--- KernelRecordsMVC.Application/obj/rider.project.model.nuget.info	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/rider.project.model.nuget.info	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,1 +1,1 @@
-﻿17878866226874199
+﻿17882300160457909
Index: KernelRecordsMVC.Application/obj/rider.project.restore.info
===================================================================
--- KernelRecordsMVC.Application/obj/rider.project.restore.info	(revision fa0fbaf2cdd288351eeaf3d4d17d8a6158ea5adc)
+++ KernelRecordsMVC.Application/obj/rider.project.restore.info	(revision d2eccb3e3d4db7d262fc57179b8ce6f7fb060d63)
@@ -1,1 +1,1 @@
-﻿17878899596254809
+﻿17882300160457909
