#95: Id changes to models #99

Merged
kdeng00 merged 3 commits from tsk-95 into master 2024-06-21 20:30:23 -04:00
32 changed files with 118 additions and 130 deletions
+4 -4
View File
@@ -45,14 +45,14 @@ public class AlbumManager : BaseManager
_albumContext.Add(album); _albumContext.Add(album);
_albumContext.SaveChanges(); _albumContext.SaveChanges();
Console.WriteLine($"Album Id {album.AlbumID}"); Console.WriteLine($"Album Id {album.Id}");
} }
else else
{ {
album.AlbumID = albumRetrieved.AlbumID; album.Id = albumRetrieved.Id;
} }
song.AlbumID = album.AlbumID; song.AlbumId = album.Id;
} }
@@ -138,7 +138,7 @@ public class AlbumManager : BaseManager
private int SongsInAlbum(Album album) private int SongsInAlbum(Album album)
{ {
var sngContext = new SongContext(_connectionString); var sngContext = new SongContext(_connectionString);
var songs = sngContext.Songs.Where(sng => sng.AlbumID == album.AlbumID).ToList(); var songs = sngContext.Songs.Where(sng => sng.AlbumId == album.Id).ToList();
return songs.Count; return songs.Count;
} }
+3 -3
View File
@@ -45,10 +45,10 @@ public class ArtistManager : BaseManager
} }
else else
{ {
artist.ArtistID = artistRetrieved.ArtistID; artist.Id = artistRetrieved.Id;
} }
song.ArtistID = artist.ArtistID; song.ArtistId = artist.Id;
} }
public Artist UpdateArtistInDatabase(Song oldSongRecord, Song newSongRecord) public Artist UpdateArtistInDatabase(Song oldSongRecord, Song newSongRecord)
@@ -120,7 +120,7 @@ public class ArtistManager : BaseManager
private int SongsOfArtist(Artist artist) private int SongsOfArtist(Artist artist)
{ {
var sngContext = new SongContext(_connectionString); var sngContext = new SongContext(_connectionString);
var songs = sngContext.Songs.Where(sng => sng.ArtistID == artist.ArtistID).ToList(); var songs = sngContext.Songs.Where(sng => sng.ArtistId == artist.Id).ToList();
return songs.Count; return songs.Count;
} }
-2
View File
@@ -1,5 +1,3 @@
using System;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using NLog; using NLog;
+1 -2
View File
@@ -2,7 +2,6 @@ using Icarus.Constants;
using Icarus.Controllers.Utilities; using Icarus.Controllers.Utilities;
using Icarus.Database.Contexts; using Icarus.Database.Contexts;
using Icarus.Models; using Icarus.Models;
using Icarus.Types;
namespace Icarus.Controllers.Managers; namespace Icarus.Controllers.Managers;
@@ -33,7 +32,7 @@ public class CoverArtManager : BaseManager
_coverArtContext.Add(coverArt); _coverArtContext.Add(coverArt);
_coverArtContext.SaveChanges(); _coverArtContext.SaveChanges();
song.CoverArtID = coverArt.CoverArtID; song.CoverArtId = coverArt.Id;
} }
public void DeleteCoverArtFromDatabase(CoverArt coverArt) public void DeleteCoverArtFromDatabase(CoverArt coverArt)
{ {
-1
View File
@@ -1,4 +1,3 @@
using System.Reflection.PortableExecutable;
using Icarus.Models; using Icarus.Models;
using Icarus.Types; using Icarus.Types;
+3 -3
View File
@@ -45,10 +45,10 @@ public class GenreManager : BaseManager
} }
else else
{ {
genre.GenreID = genreRetrieved.GenreID; genre.Id = genreRetrieved.Id;
} }
song.GenreID = genre.GenreID; song.GenreId = genre.Id;
} }
public Genre UpdateGenreInDatabase(Song oldSongRecord, Song newSongRecord) public Genre UpdateGenreInDatabase(Song oldSongRecord, Song newSongRecord)
@@ -120,7 +120,7 @@ public class GenreManager : BaseManager
private int SongsInGenre(Genre genre) private int SongsInGenre(Genre genre)
{ {
var sngContext = new SongContext(_connectionString); var sngContext = new SongContext(_connectionString);
var songs = sngContext.Songs.Where(sng => sng.GenreID == genre.GenreID).ToList(); var songs = sngContext.Songs.Where(sng => sng.GenreId == genre.Id).ToList();
return songs.Count; return songs.Count;
} }
+3 -3
View File
@@ -77,13 +77,13 @@ public class SongManager : BaseManager
var gnrMgr = new GenreManager(_config); var gnrMgr = new GenreManager(_config);
var artMgr = new ArtistManager(_config); var artMgr = new ArtistManager(_config);
var updatedAlbum = albMgr.UpdateAlbumInDatabase(oldSongRecord, updatedSong); var updatedAlbum = albMgr.UpdateAlbumInDatabase(oldSongRecord, updatedSong);
oldSongRecord.AlbumID = updatedAlbum.AlbumID; oldSongRecord.AlbumId = updatedAlbum.Id;
var updatedArtist = artMgr.UpdateArtistInDatabase(oldSongRecord, updatedSong); var updatedArtist = artMgr.UpdateArtistInDatabase(oldSongRecord, updatedSong);
oldSongRecord.ArtistID = updatedArtist.ArtistID; oldSongRecord.ArtistId = updatedArtist.Id;
var updatedGenre = gnrMgr.UpdateGenreInDatabase(oldSongRecord, updatedSong); var updatedGenre = gnrMgr.UpdateGenreInDatabase(oldSongRecord, updatedSong);
oldSongRecord.GenreID = updatedGenre.GenreID; oldSongRecord.GenreId = updatedGenre.Id;
UpdateSongInDatabase(ref oldSongRecord, ref updatedSong, ref result); UpdateSongInDatabase(ref oldSongRecord, ref updatedSong, ref result);
+12 -11
View File
@@ -24,6 +24,7 @@ public class TokenManager : BaseManager
private string _audience; private string _audience;
private string _grantType; private string _grantType;
private string _url; private string _url;
private string SUCCESSFUL_TOKEN_MESSAGE = "Successfully retrieved token";
#endregion #endregion
@@ -67,12 +68,7 @@ public class TokenManager : BaseManager
.DeserializeObject<TokenTierOne>(response.Content); .DeserializeObject<TokenTierOne>(response.Content);
_logger.Info("Response deserialized"); _logger.Info("Response deserialized");
return new LoginResult return this.InitializeLoginResult(user, tokenResult);
{
UserID = user.UserID, Username = user.Username, Token = tokenResult.AccessToken,
TokenType = tokenResult.TokenType, Expiration = tokenResult.Expiration,
Message = "Successfully retrieved token"
};
} }
@@ -81,7 +77,7 @@ public class TokenManager : BaseManager
var tokenResult = new TokenTierOne{ TokenType = "JWT" }; var tokenResult = new TokenTierOne{ TokenType = "JWT" };
var payload = Payload(); var payload = Payload();
payload.Add(new Claim("user_id", user.UserID.ToString(), ClaimValueTypes.Integer)); payload.Add(new Claim("user_id", user.Id.ToString(), ClaimValueTypes.Integer));
var tokenHandler = new JwtSecurityTokenHandler(); var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_config["JWT:Secret"]); var key = Encoding.ASCII.GetBytes(_config["JWT:Secret"]);
@@ -89,7 +85,7 @@ public class TokenManager : BaseManager
{ {
Subject = new ClaimsIdentity(new Claim[] Subject = new ClaimsIdentity(new Claim[]
{ {
new Claim("user_id", user.UserID.ToString(), ClaimValueTypes.Integer) new Claim("user_id", user.Id.ToString(), ClaimValueTypes.Integer)
// Add more claims as needed // Add more claims as needed
}), }),
Expires = DateTime.UtcNow.AddHours(1), Expires = DateTime.UtcNow.AddHours(1),
@@ -109,11 +105,16 @@ public class TokenManager : BaseManager
var exp = Math.Floor((expiredDate - DateTime.UnixEpoch).TotalSeconds); var exp = Math.Floor((expiredDate - DateTime.UnixEpoch).TotalSeconds);
tokenResult.Expiration = Convert.ToInt32(exp); tokenResult.Expiration = Convert.ToInt32(exp);
return this.InitializeLoginResult(user, tokenResult);
}
private LoginResult InitializeLoginResult(User user, TokenTierOne token)
{
return new LoginResult return new LoginResult
{ {
UserID = user.UserID, Username = user.Username, Token = tokenResult.AccessToken, UserId = user.Id, Username = user.Username, Token = token.AccessToken,
TokenType = tokenResult.TokenType, Expiration = tokenResult.Expiration, TokenType = token.TokenType, Expiration = token.Expiration,
Message = "Successfully retrieved token" Message = SUCCESSFUL_TOKEN_MESSAGE
}; };
} }
+4 -8
View File
@@ -1,7 +1,3 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
using NLog; using NLog;
using TagLib; using TagLib;
@@ -46,16 +42,16 @@ public class MetadataRetriever
public static void PrintMetadata(Song song) public static void PrintMetadata(Song song)
{ {
Console.WriteLine("\n\nMetadata of the song:"); Console.WriteLine("\n\nMetadata of the song:");
Console.WriteLine($"ID: {song.SongID}"); Console.WriteLine($"ID: {song.Id}");
Console.WriteLine($"Title: {song.Title}"); Console.WriteLine($"Title: {song.Title}");
Console.WriteLine($"Artist: {song.Artist}"); Console.WriteLine($"Artist: {song.Artist}");
Console.WriteLine($"Album: {song.AlbumTitle}"); Console.WriteLine($"Album: {song.AlbumTitle}");
Console.WriteLine($"Genre: {song.Genre}"); Console.WriteLine($"Genre: {song.Genre}");
Console.WriteLine($"Year: {song.Year}"); Console.WriteLine($"Year: {song.Year}");
Console.WriteLine($"Duration: {song.Duration}"); Console.WriteLine($"Duration: {song.Duration}");
Console.WriteLine($"AlbumID: {song.AlbumID}"); Console.WriteLine($"AlbumID: {song.AlbumId}");
Console.WriteLine($"ArtistID: {song.ArtistID}"); Console.WriteLine($"ArtistID: {song.ArtistId}");
Console.WriteLine($"GenreID: {song.GenreID}"); Console.WriteLine($"GenreID: {song.GenreId}");
Console.WriteLine($"Song Path: {song.SongPath()}"); Console.WriteLine($"Song Path: {song.SongPath()}");
Console.WriteLine($"Filename: {song.Filename}"); Console.WriteLine($"Filename: {song.Filename}");
Console.WriteLine("\n"); Console.WriteLine("\n");
+1 -1
View File
@@ -48,7 +48,7 @@ public class AlbumController : BaseController
[HttpGet("{id}")] [HttpGet("{id}")]
public IActionResult GetAlbum(int id) public IActionResult GetAlbum(int id)
{ {
Album album = new Album{ AlbumID = id }; Album album = new Album{ Id = id };
var albumContext = new AlbumContext(_connectionString); var albumContext = new AlbumContext(_connectionString);
+1 -4
View File
@@ -48,10 +48,7 @@ public class ArtistController : BaseController
[HttpGet("{id}")] [HttpGet("{id}")]
public IActionResult GetArtist(int id) public IActionResult GetArtist(int id)
{ {
Artist artist = new Artist Artist artist = new Artist { Id = id };
{
ArtistID = id
};
var artistContext = new ArtistContext(_connectionString); var artistContext = new ArtistContext(_connectionString);
+2 -2
View File
@@ -51,7 +51,7 @@ public class CoverArtController : BaseController
[HttpGet("{id}")] [HttpGet("{id}")]
public IActionResult GetCoverArt(int id) public IActionResult GetCoverArt(int id)
{ {
var coverArt = new CoverArt { CoverArtID = id }; var coverArt = new CoverArt { Id = id };
var coverArtContext = new CoverArtContext(_connectionString); var coverArtContext = new CoverArtContext(_connectionString);
@@ -79,7 +79,7 @@ public class CoverArtController : BaseController
var songContext = new SongContext(_connectionString); var songContext = new SongContext(_connectionString);
var covMgr = new CoverArtManager(this._config); var covMgr = new CoverArtManager(this._config);
var songMetaData = songContext.RetrieveRecord(new Song { SongID = id}); var songMetaData = songContext.RetrieveRecord(new Song { Id = id});
var c = covMgr.GetCoverArt(songMetaData); var c = covMgr.GetCoverArt(songMetaData);
var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.JPG_EXTENSION, songMetaData.Title, randomizeFilename); var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.JPG_EXTENSION, songMetaData.Title, randomizeFilename);
+1 -1
View File
@@ -52,7 +52,7 @@ public class GenreController : BaseController
[HttpGet("{id}")] [HttpGet("{id}")]
public IActionResult GetGenre(int id) public IActionResult GetGenre(int id)
{ {
var genre = new Genre{ GenreID = id }; var genre = new Genre { Id = id };
var genreStore = new GenreContext(_connectionString); var genreStore = new GenreContext(_connectionString);
@@ -46,7 +46,7 @@ public class SongCompressedDataController : BaseController
Console.WriteLine($"Archive directory root: {_archiveDir}"); Console.WriteLine($"Archive directory root: {_archiveDir}");
Console.WriteLine("Starting process of retrieving comrpessed song"); Console.WriteLine("Starting process of retrieving comrpessed song");
var sng = context.RetrieveRecord(new Song{ SongID = id }); var sng = context.RetrieveRecord(new Song{ Id = id });
SongData song = await cmp.RetrieveCompressedSong(sng); SongData song = await cmp.RetrieveCompressedSong(sng);
var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.ZIP_EXTENSION, sng.Title, randomizeFilename); var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.ZIP_EXTENSION, sng.Title, randomizeFilename);
+3 -3
View File
@@ -61,11 +61,11 @@ public class SongController : BaseController
{ {
var context = new SongContext(_connectionString); var context = new SongContext(_connectionString);
var song = context.RetrieveRecord(new Song{ SongID = id }); var song = context.RetrieveRecord(new Song{ Id = id });
Console.WriteLine("Here"); Console.WriteLine("Here");
if (song.SongID != 0) if (song.Id != 0)
return Ok(song); return Ok(song);
else else
return NotFound(); return NotFound();
@@ -74,7 +74,7 @@ public class SongController : BaseController
[HttpPut("{id}")] [HttpPut("{id}")]
public IActionResult UpdateSong(int id, [FromBody] Song song) public IActionResult UpdateSong(int id, [FromBody] Song song)
{ {
song.SongID = id; song.Id = id;
Console.WriteLine("Retrieving filepath of song"); Console.WriteLine("Retrieving filepath of song");
_logger.LogInformation("Retrieving filepath of song"); _logger.LogInformation("Retrieving filepath of song");
+4 -4
View File
@@ -40,7 +40,7 @@ public class SongDataController : BaseController
public IActionResult Download(int id, [FromQuery] bool? randomizeFilename) public IActionResult Download(int id, [FromQuery] bool? randomizeFilename)
{ {
var songContext = new SongContext(_connectionString); var songContext = new SongContext(_connectionString);
var songMetaData = songContext.RetrieveRecord(new Song { SongID = id}); var songMetaData = songContext.RetrieveRecord(new Song { Id = id});
var song = _songMgr.RetrieveSong(songMetaData).Result; var song = _songMgr.RetrieveSong(songMetaData).Result;
var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.WAV_EXTENSION, songMetaData.Title, randomizeFilename); var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.WAV_EXTENSION, songMetaData.Title, randomizeFilename);
@@ -110,7 +110,7 @@ public class SongDataController : BaseController
if (userId != -1) if (userId != -1)
{ {
song.UserID = userId; song.UserId = userId;
} }
_logger.LogInformation($"Song title: {song.Title}"); _logger.LogInformation($"Song title: {song.Title}");
@@ -131,8 +131,8 @@ public class SongDataController : BaseController
{ {
var songContext = new SongContext(_connectionString); var songContext = new SongContext(_connectionString);
var songMetaData = new Song{ SongID = id }; var songMetaData = new Song{ Id = id };
Console.WriteLine($"Id {songMetaData.SongID}"); Console.WriteLine($"Id {songMetaData.Id}");
songMetaData = songContext.RetrieveRecord(songMetaData); songMetaData = songContext.RetrieveRecord(songMetaData);
+1 -1
View File
@@ -34,7 +34,7 @@ public class SongStreamController : BaseController
{ {
var context = new SongContext(_config.GetConnectionString("DefaultConnection")); var context = new SongContext(_config.GetConnectionString("DefaultConnection"));
var song = context.Songs.FirstOrDefault(sng => sng.SongID == id); var song = context.Songs.FirstOrDefault(sng => sng.Id == id);
var stream = new FileStream(song.SongPath(), FileMode.Open, FileAccess.Read); var stream = new FileStream(song.SongPath(), FileMode.Open, FileAccess.Read);
stream.Position = 0; stream.Position = 0;
+2 -2
View File
@@ -22,11 +22,11 @@ public class AlbumContext : DbContext
public Album RetrieveRecord(Album album) public Album RetrieveRecord(Album album)
{ {
return Albums.FirstOrDefault(alb => alb.AlbumID == album.AlbumID); return Albums.FirstOrDefault(alb => alb.Id == album.Id);
} }
public bool DoesRecordExist(Album album) public bool DoesRecordExist(Album album)
{ {
return Albums.FirstOrDefault(alb => alb.AlbumID == album.AlbumID) != null ? true : false; return Albums.FirstOrDefault(alb => alb.Id == album.Id) != null ? true : false;
} }
} }
+2 -2
View File
@@ -23,12 +23,12 @@ public class ArtistContext : DbContext
public Artist RetrieveRecord(Artist artist) public Artist RetrieveRecord(Artist artist)
{ {
return Artists.FirstOrDefault(arst => arst.ArtistID == artist.ArtistID); return Artists.FirstOrDefault(arst => arst.Id == artist.Id);
} }
public bool DoesRecordExist(Artist artist) public bool DoesRecordExist(Artist artist)
{ {
return Artists.FirstOrDefault(arst => arst.ArtistID == artist.ArtistID) != null ? true : false; return Artists.FirstOrDefault(arst => arst.Id == artist.Id) != null ? true : false;
} }
} }
+2 -2
View File
@@ -22,11 +22,11 @@ public class CoverArtContext : DbContext
public CoverArt RetrieveRecord(CoverArt cover) public CoverArt RetrieveRecord(CoverArt cover)
{ {
return CoverArtImages.FirstOrDefault(cov => cov.CoverArtID == cover.CoverArtID); return CoverArtImages.FirstOrDefault(cov => cov.Id == cover.Id);
} }
public bool DoesRecordExist(CoverArt cover) public bool DoesRecordExist(CoverArt cover)
{ {
return CoverArtImages.FirstOrDefault(cov => cov.CoverArtID == cover.CoverArtID) != null ? true : false; return CoverArtImages.FirstOrDefault(cov => cov.Id == cover.Id) != null ? true : false;
} }
} }
+2 -2
View File
@@ -22,11 +22,11 @@ public class GenreContext : DbContext
public Genre RetrieveRecord(Genre genre) public Genre RetrieveRecord(Genre genre)
{ {
return Genres.FirstOrDefault(gnr => gnr.GenreID == genre.GenreID); return Genres.FirstOrDefault(gnr => gnr.Id == genre.Id);
} }
public bool DoesRecordExist(Genre genre) public bool DoesRecordExist(Genre genre)
{ {
return Genres.FirstOrDefault(gnr => gnr.GenreID == genre.GenreID) != null ? true : false; return Genres.FirstOrDefault(gnr => gnr.Id == genre.Id) != null ? true : false;
} }
} }
+6 -6
View File
@@ -25,28 +25,28 @@ public class SongContext : DbContext
.Property(s => s.Year) .Property(s => s.Year)
.IsRequired(false); .IsRequired(false);
modelBuilder.Entity<Song>() modelBuilder.Entity<Song>()
.Property(s => s.GenreID) .Property(s => s.GenreId)
.IsRequired(false); .IsRequired(false);
modelBuilder.Entity<Song>() modelBuilder.Entity<Song>()
.Property(s => s.ArtistID) .Property(s => s.ArtistId)
.IsRequired(false); .IsRequired(false);
modelBuilder.Entity<Song>() modelBuilder.Entity<Song>()
.Property(s => s.AlbumID) .Property(s => s.AlbumId)
.IsRequired(false); .IsRequired(false);
modelBuilder.Entity<Song>() modelBuilder.Entity<Song>()
.Property(s => s.CoverArtID) .Property(s => s.CoverArtId)
.IsRequired(false); .IsRequired(false);
} }
public Song RetrieveRecord(Song song) public Song RetrieveRecord(Song song)
{ {
return Songs.FirstOrDefault(sng => sng.SongID == song.SongID); return Songs.FirstOrDefault(sng => sng.Id == song.Id);
} }
public bool DoesRecordExist(Song song) public bool DoesRecordExist(Song song)
{ {
return Songs.FirstOrDefault(sng => sng.SongID == song.SongID) != null ? true : false; return Songs.FirstOrDefault(sng => sng.Id == song.Id) != null ? true : false;
} }
} }
+2 -2
View File
@@ -32,11 +32,11 @@ public class UserContext : DbContext
public User RetrieveRecord(User user) public User RetrieveRecord(User user)
{ {
return Users.FirstOrDefault(usr => usr.UserID == user.UserID); return Users.FirstOrDefault(usr => usr.Id == user.Id);
} }
public bool DoesRecordExist(User user) public bool DoesRecordExist(User user)
{ {
return Users.FirstOrDefault(usr => usr.UserID == user.UserID) != null ? true : false; return Users.FirstOrDefault(usr => usr.Id == user.Id) != null ? true : false;
} }
} }
+2 -2
View File
@@ -6,8 +6,8 @@ namespace Icarus.Models;
public class Album public class Album
{ {
[JsonProperty("album_id")] [JsonProperty("id")]
public int AlbumID { get; set; } public int Id { get; set; }
[JsonProperty("title")] [JsonProperty("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonProperty("album_artist")] [JsonProperty("album_artist")]
+2 -2
View File
@@ -6,8 +6,8 @@ namespace Icarus.Models;
public class Artist public class Artist
{ {
[JsonProperty("artist_id")] [JsonProperty("id")]
public int ArtistID { get; set; } public int Id { get; set; }
[JsonProperty("name")] [JsonProperty("name")]
[Column("Artist")] [Column("Artist")]
public string Name { get; set; } public string Name { get; set; }
+2 -2
View File
@@ -5,8 +5,8 @@ namespace Icarus.Models;
public class CoverArt public class CoverArt
{ {
#region Properties #region Properties
[JsonProperty("cover_art_id")] [JsonProperty("id")]
public int CoverArtID { get; set; } public int Id { get; set; }
[JsonProperty("title")] [JsonProperty("title")]
public string SongTitle { get; set; } public string SongTitle { get; set; }
[JsonIgnore] [JsonIgnore]
+2 -2
View File
@@ -6,8 +6,8 @@ namespace Icarus.Models;
public class Genre public class Genre
{ {
[JsonProperty("genre_id")] [JsonProperty("id")]
public int GenreID { get; set; } public int Id { get; set; }
[JsonProperty("genre")] [JsonProperty("genre")]
[Column("Category")] [Column("Category")]
public string GenreName { get; set; } public string GenreName { get; set; }
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Icarus.Models;
public class LoginResult : BaseResult public class LoginResult : BaseResult
{ {
[JsonProperty("user_id")] [JsonProperty("user_id")]
public int UserID { get; set; } public int UserId { get; set; }
[JsonProperty("username")] [JsonProperty("username")]
public string Username { get; set; } public string Username { get; set; }
[JsonProperty("token")] [JsonProperty("token")]
+7 -7
View File
@@ -7,8 +7,8 @@ namespace Icarus.Models;
public class Song public class Song
{ {
#region Properties #region Properties
[JsonProperty("song_id")] [JsonProperty("id")]
public int SongID { get; set; } public int Id { get; set; }
[JsonProperty("title")] [JsonProperty("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonProperty("album")] [JsonProperty("album")]
@@ -37,17 +37,17 @@ public class Song
[JsonProperty("disc_count")] [JsonProperty("disc_count")]
public int DiscCount { get; set; } = 0; public int DiscCount { get; set; } = 0;
[JsonIgnore] [JsonIgnore]
public int? AlbumID { get; set; } public int? AlbumId { get; set; }
[JsonIgnore] [JsonIgnore]
public int? ArtistID { get; set; } public int? ArtistId { get; set; }
[JsonIgnore] [JsonIgnore]
public int? GenreID { get; set; } public int? GenreId { get; set; }
[JsonIgnore] [JsonIgnore]
public int? CoverArtID { get; set; } public int? CoverArtId { get; set; }
[JsonProperty("date_created")] [JsonProperty("date_created")]
public DateTime DateCreated { get; set; } public DateTime DateCreated { get; set; }
[JsonProperty("user_id")] [JsonProperty("user_id")]
public int UserID { get; set; } public int UserId { get; set; }
#endregion #endregion
+3 -3
View File
@@ -9,10 +9,10 @@ namespace Icarus.Models;
public class User public class User
{ {
#region Properties #region Properties
[JsonProperty("user_id")] [JsonProperty("id")]
[Column("UserID")] [Column("Id")]
[Key] [Key]
public int UserID { get; set; } public int Id { get; set; }
[JsonProperty("username")] [JsonProperty("username")]
public string Username { get; set; } public string Username { get; set; }
[JsonProperty("password")] [JsonProperty("password")]
+20 -41
View File
@@ -3,39 +3,39 @@ CREATE DATABASE Icarus;
USE Icarus; USE Icarus;
CREATE TABLE CoverArt ( CREATE TABLE CoverArt (
CoverArtID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
SongTitle TEXT NOT NULL, SongTitle TEXT NOT NULL,
ImagePath TEXT NOT NULL, ImagePath TEXT NOT NULL,
PRIMARY KEY (CoverArtID) PRIMARY KEY (Id)
); );
CREATE TABLE Album ( CREATE TABLE Album (
AlbumID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
Title TEXT NOT NULL, Title TEXT NOT NULL,
Artist TEXT NOT NULL, Artist TEXT NOT NULL,
Year INT NOT NULL, Year INT NOT NULL,
PRIMARY KEY (AlbumID) PRIMARY KEY (Id)
); );
CREATE TABLE Artist ( CREATE TABLE Artist (
ArtistID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
Artist TEXT NOT NULL, Artist TEXT NOT NULL,
PRIMARY KEY (ArtistID) PRIMARY KEY (Id)
); );
CREATE TABLE Genre ( CREATE TABLE Genre (
GenreID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
Category TEXT NOT NULL, Category TEXT NOT NULL,
PRIMARY KEY (GenreID) PRIMARY KEY (Id)
); );
CREATE TABLE Song ( CREATE TABLE Song (
SongID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
Title TEXT NOT NULL, Title TEXT NOT NULL,
Artist TEXT NOT NULL, Artist TEXT NOT NULL,
Album TEXT NOT NULL, Album TEXT NOT NULL,
@@ -49,21 +49,21 @@ CREATE TABLE Song (
DiscCount INT NOT NULL, DiscCount INT NOT NULL,
SongDirectory TEXT NOT NULL, SongDirectory TEXT NOT NULL,
Filename TEXT NOT NULL, Filename TEXT NOT NULL,
CoverArtID INT NOT NULL, CoverArtId INT NOT NULL,
ArtistID INT NOT NULL, ArtistId INT NOT NULL,
AlbumID INT NOT NULL, AlbumId INT NOT NULL,
GenreID INT NOT NULL, GenreId INT NOT NULL,
DateCreated DATETIME DEFAULT CURRENT_TIMESTAMP, DateCreated DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (SongID), PRIMARY KEY (Id),
CONSTRAINT FK_Song_CoverArtID FOREIGN KEY (CoverArtID) REFERENCES CoverArt (CoverArtID), CONSTRAINT FK_Song_CoverArtId FOREIGN KEY (CoverArtId) REFERENCES CoverArt (Id),
CONSTRAINT FK_Song_ArtistID FOREIGN KEY (ArtistID) REFERENCES Artist (ArtistID), CONSTRAINT FK_Song_ArtistId FOREIGN KEY (ArtistId) REFERENCES Artist (Id),
CONSTRAINT FK_Song_AlbumID FOREIGN KEY (AlbumID) REFERENCES Album (AlbumID), CONSTRAINT FK_Song_AlbumId FOREIGN KEY (AlbumId) REFERENCES Album (Id),
CONSTRAINT FK_Song_GenreID FOREIGN KEY (GenreID) REFERENCES Genre (GenreID) CONSTRAINT FK_Song_GenreId FOREIGN KEY (GenreId) REFERENCES Genre (Id)
); );
CREATE TABLE User ( CREATE TABLE User (
UserID INT NOT NULL AUTO_INCREMENT, Id INT NOT NULL AUTO_INCREMENT,
Firstname TEXT NOT NULL, Firstname TEXT NOT NULL,
Lastname TEXT NOT NULL, Lastname TEXT NOT NULL,
Email TEXT NOT NULL, Email TEXT NOT NULL,
@@ -74,26 +74,5 @@ CREATE TABLE User (
Status TEXT DEFAULT 'Active', Status TEXT DEFAULT 'Active',
LastLogin DATETIME NULL, LastLogin DATETIME NULL,
PRIMARY KEY (UserID) PRIMARY KEY (Id)
);
CREATE TABLE Salt (
SaltID INT NOT NULL AUTO_INCREMENT,
Salt TEXT NOT NULL,
UserID INT NOT NULL,
PRIMARY KEY (SaltID),
CONSTRAINT FK_Salt_UserID FOREIGN KEY (UserID) REFERENCES User (UserID)
);
CREATE TABLE Token (
TokenID INT NOT NULL AUTO_INCREMENT,
AccessToken TEXT NOT NULL,
TokenType TEXT NOT NULL,
Expires DATETIME DEFAULT CURRENT_TIMESTAMP,
Issued DATETIME DEFAULT CURRENT_TIMESTAMP,
UserID INT NOT NULL,
PRIMARY KEY (TokenID),
CONSTRAINT FK_Token_UserID FOREIGN KEY (UserID) REFERENCES User (UserID)
); );
+19
View File
@@ -0,0 +1,19 @@
CREATE TABLE IF NOT EXISTS `__EFMigrationsHistory` (
`MigrationId` varchar(150) NOT NULL,
`ProductVersion` varchar(32) NOT NULL,
PRIMARY KEY (`MigrationId`)
);
START TRANSACTION;
CREATE TABLE `Artist` (
`Id` int NOT NULL AUTO_INCREMENT,
`Artist` longtext NULL,
PRIMARY KEY (`Id`)
);
INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
VALUES ('20240620205519_ModelIdChanges', '8.0.6');
COMMIT;