From 4b3fa78336b29bd2054ab86c137ffe8716a1c5ba Mon Sep 17 00:00:00 2001 From: Kun Deng Date: Fri, 21 Jun 2024 20:30:23 -0400 Subject: [PATCH] #95: Id changes to models (#99) * #95: Updated Id of the CoverArt model * Model and migration changes --- Controllers/Managers/AlbumManager.cs | 8 +-- Controllers/Managers/ArtistManager.cs | 6 +- Controllers/Managers/BaseManagers.cs | 2 - Controllers/Managers/CoverArtManager.cs | 3 +- Controllers/Managers/DirectoryManager.cs | 1 - Controllers/Managers/GenreManager.cs | 6 +- Controllers/Managers/SongManager.cs | 6 +- Controllers/Managers/TokenManager.cs | 23 +++---- Controllers/Utilities/MetadataRetriever.cs | 12 ++-- Controllers/v1/AlbumController.cs | 2 +- Controllers/v1/ArtistController.cs | 5 +- Controllers/v1/CoverArtController.cs | 4 +- Controllers/v1/GenreController.cs | 2 +- .../v1/SongCompressedDataControllers.cs | 2 +- Controllers/v1/SongController.cs | 6 +- Controllers/v1/SongDataController.cs | 8 +-- Controllers/v1/SongStreamController.cs | 2 +- Database/Contexts/AlbumContext.cs | 4 +- Database/Contexts/ArtistContext.cs | 4 +- Database/Contexts/CoverArtContext.cs | 4 +- Database/Contexts/GenreContext.cs | 4 +- Database/Contexts/SongContext.cs | 12 ++-- Database/Contexts/UserContext.cs | 4 +- Models/Album.cs | 4 +- Models/Artist.cs | 4 +- Models/CoverArt.cs | 4 +- Models/Genre.cs | 4 +- Models/LoginResult.cs | 2 +- Models/Song.cs | 14 ++--- Models/User.cs | 6 +- Scripts/MySQL/create_database.sql | 61 ++++++------------- Scripts/MySQL/tables/ArtistContext.sql | 19 ++++++ 32 files changed, 118 insertions(+), 130 deletions(-) create mode 100644 Scripts/MySQL/tables/ArtistContext.sql diff --git a/Controllers/Managers/AlbumManager.cs b/Controllers/Managers/AlbumManager.cs index 66c5a68..82b2603 100644 --- a/Controllers/Managers/AlbumManager.cs +++ b/Controllers/Managers/AlbumManager.cs @@ -45,14 +45,14 @@ public class AlbumManager : BaseManager _albumContext.Add(album); _albumContext.SaveChanges(); - Console.WriteLine($"Album Id {album.AlbumID}"); + Console.WriteLine($"Album Id {album.Id}"); } 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) { 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; } diff --git a/Controllers/Managers/ArtistManager.cs b/Controllers/Managers/ArtistManager.cs index 3fb7ac3..de12592 100644 --- a/Controllers/Managers/ArtistManager.cs +++ b/Controllers/Managers/ArtistManager.cs @@ -45,10 +45,10 @@ public class ArtistManager : BaseManager } else { - artist.ArtistID = artistRetrieved.ArtistID; + artist.Id = artistRetrieved.Id; } - song.ArtistID = artist.ArtistID; + song.ArtistId = artist.Id; } public Artist UpdateArtistInDatabase(Song oldSongRecord, Song newSongRecord) @@ -120,7 +120,7 @@ public class ArtistManager : BaseManager private int SongsOfArtist(Artist artist) { 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; } diff --git a/Controllers/Managers/BaseManagers.cs b/Controllers/Managers/BaseManagers.cs index 5875a17..93e6a5e 100644 --- a/Controllers/Managers/BaseManagers.cs +++ b/Controllers/Managers/BaseManagers.cs @@ -1,5 +1,3 @@ -using System; - using Microsoft.Extensions.Configuration; using NLog; diff --git a/Controllers/Managers/CoverArtManager.cs b/Controllers/Managers/CoverArtManager.cs index dbd259d..ac54aa6 100644 --- a/Controllers/Managers/CoverArtManager.cs +++ b/Controllers/Managers/CoverArtManager.cs @@ -2,7 +2,6 @@ using Icarus.Constants; using Icarus.Controllers.Utilities; using Icarus.Database.Contexts; using Icarus.Models; -using Icarus.Types; namespace Icarus.Controllers.Managers; @@ -33,7 +32,7 @@ public class CoverArtManager : BaseManager _coverArtContext.Add(coverArt); _coverArtContext.SaveChanges(); - song.CoverArtID = coverArt.CoverArtID; + song.CoverArtId = coverArt.Id; } public void DeleteCoverArtFromDatabase(CoverArt coverArt) { diff --git a/Controllers/Managers/DirectoryManager.cs b/Controllers/Managers/DirectoryManager.cs index c126216..216c1c7 100644 --- a/Controllers/Managers/DirectoryManager.cs +++ b/Controllers/Managers/DirectoryManager.cs @@ -1,4 +1,3 @@ -using System.Reflection.PortableExecutable; using Icarus.Models; using Icarus.Types; diff --git a/Controllers/Managers/GenreManager.cs b/Controllers/Managers/GenreManager.cs index 009f76b..0f2ecb7 100644 --- a/Controllers/Managers/GenreManager.cs +++ b/Controllers/Managers/GenreManager.cs @@ -45,10 +45,10 @@ public class GenreManager : BaseManager } else { - genre.GenreID = genreRetrieved.GenreID; + genre.Id = genreRetrieved.Id; } - song.GenreID = genre.GenreID; + song.GenreId = genre.Id; } public Genre UpdateGenreInDatabase(Song oldSongRecord, Song newSongRecord) @@ -120,7 +120,7 @@ public class GenreManager : BaseManager private int SongsInGenre(Genre genre) { 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; } diff --git a/Controllers/Managers/SongManager.cs b/Controllers/Managers/SongManager.cs index 8234e06..dc53f45 100644 --- a/Controllers/Managers/SongManager.cs +++ b/Controllers/Managers/SongManager.cs @@ -77,13 +77,13 @@ public class SongManager : BaseManager var gnrMgr = new GenreManager(_config); var artMgr = new ArtistManager(_config); var updatedAlbum = albMgr.UpdateAlbumInDatabase(oldSongRecord, updatedSong); - oldSongRecord.AlbumID = updatedAlbum.AlbumID; + oldSongRecord.AlbumId = updatedAlbum.Id; var updatedArtist = artMgr.UpdateArtistInDatabase(oldSongRecord, updatedSong); - oldSongRecord.ArtistID = updatedArtist.ArtistID; + oldSongRecord.ArtistId = updatedArtist.Id; var updatedGenre = gnrMgr.UpdateGenreInDatabase(oldSongRecord, updatedSong); - oldSongRecord.GenreID = updatedGenre.GenreID; + oldSongRecord.GenreId = updatedGenre.Id; UpdateSongInDatabase(ref oldSongRecord, ref updatedSong, ref result); diff --git a/Controllers/Managers/TokenManager.cs b/Controllers/Managers/TokenManager.cs index 2c2e03e..96fecfe 100644 --- a/Controllers/Managers/TokenManager.cs +++ b/Controllers/Managers/TokenManager.cs @@ -24,6 +24,7 @@ public class TokenManager : BaseManager private string _audience; private string _grantType; private string _url; + private string SUCCESSFUL_TOKEN_MESSAGE = "Successfully retrieved token"; #endregion @@ -67,12 +68,7 @@ public class TokenManager : BaseManager .DeserializeObject(response.Content); _logger.Info("Response deserialized"); - return new LoginResult - { - UserID = user.UserID, Username = user.Username, Token = tokenResult.AccessToken, - TokenType = tokenResult.TokenType, Expiration = tokenResult.Expiration, - Message = "Successfully retrieved token" - }; + return this.InitializeLoginResult(user, tokenResult); } @@ -81,7 +77,7 @@ public class TokenManager : BaseManager var tokenResult = new TokenTierOne{ TokenType = "JWT" }; 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 key = Encoding.ASCII.GetBytes(_config["JWT:Secret"]); @@ -89,7 +85,7 @@ public class TokenManager : BaseManager { 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 }), Expires = DateTime.UtcNow.AddHours(1), @@ -109,11 +105,16 @@ public class TokenManager : BaseManager var exp = Math.Floor((expiredDate - DateTime.UnixEpoch).TotalSeconds); tokenResult.Expiration = Convert.ToInt32(exp); + return this.InitializeLoginResult(user, tokenResult); + } + + private LoginResult InitializeLoginResult(User user, TokenTierOne token) + { return new LoginResult { - UserID = user.UserID, Username = user.Username, Token = tokenResult.AccessToken, - TokenType = tokenResult.TokenType, Expiration = tokenResult.Expiration, - Message = "Successfully retrieved token" + UserId = user.Id, Username = user.Username, Token = token.AccessToken, + TokenType = token.TokenType, Expiration = token.Expiration, + Message = SUCCESSFUL_TOKEN_MESSAGE }; } diff --git a/Controllers/Utilities/MetadataRetriever.cs b/Controllers/Utilities/MetadataRetriever.cs index ee15437..1862226 100644 --- a/Controllers/Utilities/MetadataRetriever.cs +++ b/Controllers/Utilities/MetadataRetriever.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; - -using Microsoft.Extensions.Logging; using NLog; using TagLib; @@ -46,16 +42,16 @@ public class MetadataRetriever public static void PrintMetadata(Song 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($"Artist: {song.Artist}"); Console.WriteLine($"Album: {song.AlbumTitle}"); Console.WriteLine($"Genre: {song.Genre}"); Console.WriteLine($"Year: {song.Year}"); Console.WriteLine($"Duration: {song.Duration}"); - Console.WriteLine($"AlbumID: {song.AlbumID}"); - Console.WriteLine($"ArtistID: {song.ArtistID}"); - Console.WriteLine($"GenreID: {song.GenreID}"); + Console.WriteLine($"AlbumID: {song.AlbumId}"); + Console.WriteLine($"ArtistID: {song.ArtistId}"); + Console.WriteLine($"GenreID: {song.GenreId}"); Console.WriteLine($"Song Path: {song.SongPath()}"); Console.WriteLine($"Filename: {song.Filename}"); Console.WriteLine("\n"); diff --git a/Controllers/v1/AlbumController.cs b/Controllers/v1/AlbumController.cs index 85bbea2..eb5bbc6 100644 --- a/Controllers/v1/AlbumController.cs +++ b/Controllers/v1/AlbumController.cs @@ -48,7 +48,7 @@ public class AlbumController : BaseController [HttpGet("{id}")] public IActionResult GetAlbum(int id) { - Album album = new Album{ AlbumID = id }; + Album album = new Album{ Id = id }; var albumContext = new AlbumContext(_connectionString); diff --git a/Controllers/v1/ArtistController.cs b/Controllers/v1/ArtistController.cs index e6d021d..6bf41ce 100644 --- a/Controllers/v1/ArtistController.cs +++ b/Controllers/v1/ArtistController.cs @@ -48,10 +48,7 @@ public class ArtistController : BaseController [HttpGet("{id}")] public IActionResult GetArtist(int id) { - Artist artist = new Artist - { - ArtistID = id - }; + Artist artist = new Artist { Id = id }; var artistContext = new ArtistContext(_connectionString); diff --git a/Controllers/v1/CoverArtController.cs b/Controllers/v1/CoverArtController.cs index 241e3e1..0cc1523 100644 --- a/Controllers/v1/CoverArtController.cs +++ b/Controllers/v1/CoverArtController.cs @@ -51,7 +51,7 @@ public class CoverArtController : BaseController [HttpGet("{id}")] public IActionResult GetCoverArt(int id) { - var coverArt = new CoverArt { CoverArtID = id }; + var coverArt = new CoverArt { Id = id }; var coverArtContext = new CoverArtContext(_connectionString); @@ -79,7 +79,7 @@ public class CoverArtController : BaseController var songContext = new SongContext(_connectionString); 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 filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.JPG_EXTENSION, songMetaData.Title, randomizeFilename); diff --git a/Controllers/v1/GenreController.cs b/Controllers/v1/GenreController.cs index 3e8a387..534240e 100644 --- a/Controllers/v1/GenreController.cs +++ b/Controllers/v1/GenreController.cs @@ -52,7 +52,7 @@ public class GenreController : BaseController [HttpGet("{id}")] public IActionResult GetGenre(int id) { - var genre = new Genre{ GenreID = id }; + var genre = new Genre { Id = id }; var genreStore = new GenreContext(_connectionString); diff --git a/Controllers/v1/SongCompressedDataControllers.cs b/Controllers/v1/SongCompressedDataControllers.cs index 7d094cf..12b5a2e 100644 --- a/Controllers/v1/SongCompressedDataControllers.cs +++ b/Controllers/v1/SongCompressedDataControllers.cs @@ -46,7 +46,7 @@ public class SongCompressedDataController : BaseController Console.WriteLine($"Archive directory root: {_archiveDir}"); 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); var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.ZIP_EXTENSION, sng.Title, randomizeFilename); diff --git a/Controllers/v1/SongController.cs b/Controllers/v1/SongController.cs index 0def6aa..9ec26c3 100644 --- a/Controllers/v1/SongController.cs +++ b/Controllers/v1/SongController.cs @@ -61,11 +61,11 @@ public class SongController : BaseController { var context = new SongContext(_connectionString); - var song = context.RetrieveRecord(new Song{ SongID = id }); + var song = context.RetrieveRecord(new Song{ Id = id }); Console.WriteLine("Here"); - if (song.SongID != 0) + if (song.Id != 0) return Ok(song); else return NotFound(); @@ -74,7 +74,7 @@ public class SongController : BaseController [HttpPut("{id}")] public IActionResult UpdateSong(int id, [FromBody] Song song) { - song.SongID = id; + song.Id = id; Console.WriteLine("Retrieving filepath of song"); _logger.LogInformation("Retrieving filepath of song"); diff --git a/Controllers/v1/SongDataController.cs b/Controllers/v1/SongDataController.cs index cd68b35..fd97f3b 100644 --- a/Controllers/v1/SongDataController.cs +++ b/Controllers/v1/SongDataController.cs @@ -40,7 +40,7 @@ public class SongDataController : BaseController public IActionResult Download(int id, [FromQuery] bool? randomizeFilename) { 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 filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.WAV_EXTENSION, songMetaData.Title, randomizeFilename); @@ -110,7 +110,7 @@ public class SongDataController : BaseController if (userId != -1) { - song.UserID = userId; + song.UserId = userId; } _logger.LogInformation($"Song title: {song.Title}"); @@ -131,8 +131,8 @@ public class SongDataController : BaseController { var songContext = new SongContext(_connectionString); - var songMetaData = new Song{ SongID = id }; - Console.WriteLine($"Id {songMetaData.SongID}"); + var songMetaData = new Song{ Id = id }; + Console.WriteLine($"Id {songMetaData.Id}"); songMetaData = songContext.RetrieveRecord(songMetaData); diff --git a/Controllers/v1/SongStreamController.cs b/Controllers/v1/SongStreamController.cs index f65937c..d72117b 100644 --- a/Controllers/v1/SongStreamController.cs +++ b/Controllers/v1/SongStreamController.cs @@ -34,7 +34,7 @@ public class SongStreamController : BaseController { 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); stream.Position = 0; diff --git a/Database/Contexts/AlbumContext.cs b/Database/Contexts/AlbumContext.cs index 9d5dc55..ecf0275 100644 --- a/Database/Contexts/AlbumContext.cs +++ b/Database/Contexts/AlbumContext.cs @@ -22,11 +22,11 @@ public class AlbumContext : DbContext 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) { - return Albums.FirstOrDefault(alb => alb.AlbumID == album.AlbumID) != null ? true : false; + return Albums.FirstOrDefault(alb => alb.Id == album.Id) != null ? true : false; } } diff --git a/Database/Contexts/ArtistContext.cs b/Database/Contexts/ArtistContext.cs index b2007f1..d34e52d 100644 --- a/Database/Contexts/ArtistContext.cs +++ b/Database/Contexts/ArtistContext.cs @@ -23,12 +23,12 @@ public class ArtistContext : DbContext 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) { - return Artists.FirstOrDefault(arst => arst.ArtistID == artist.ArtistID) != null ? true : false; + return Artists.FirstOrDefault(arst => arst.Id == artist.Id) != null ? true : false; } } diff --git a/Database/Contexts/CoverArtContext.cs b/Database/Contexts/CoverArtContext.cs index f6cd149..2f3dfe3 100644 --- a/Database/Contexts/CoverArtContext.cs +++ b/Database/Contexts/CoverArtContext.cs @@ -22,11 +22,11 @@ public class CoverArtContext : DbContext 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) { - return CoverArtImages.FirstOrDefault(cov => cov.CoverArtID == cover.CoverArtID) != null ? true : false; + return CoverArtImages.FirstOrDefault(cov => cov.Id == cover.Id) != null ? true : false; } } diff --git a/Database/Contexts/GenreContext.cs b/Database/Contexts/GenreContext.cs index 5dacdf3..37ffd53 100644 --- a/Database/Contexts/GenreContext.cs +++ b/Database/Contexts/GenreContext.cs @@ -22,11 +22,11 @@ public class GenreContext : DbContext 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) { - return Genres.FirstOrDefault(gnr => gnr.GenreID == genre.GenreID) != null ? true : false; + return Genres.FirstOrDefault(gnr => gnr.Id == genre.Id) != null ? true : false; } } diff --git a/Database/Contexts/SongContext.cs b/Database/Contexts/SongContext.cs index 897fd8b..f65588e 100644 --- a/Database/Contexts/SongContext.cs +++ b/Database/Contexts/SongContext.cs @@ -25,28 +25,28 @@ public class SongContext : DbContext .Property(s => s.Year) .IsRequired(false); modelBuilder.Entity() - .Property(s => s.GenreID) + .Property(s => s.GenreId) .IsRequired(false); modelBuilder.Entity() - .Property(s => s.ArtistID) + .Property(s => s.ArtistId) .IsRequired(false); modelBuilder.Entity() - .Property(s => s.AlbumID) + .Property(s => s.AlbumId) .IsRequired(false); modelBuilder.Entity() - .Property(s => s.CoverArtID) + .Property(s => s.CoverArtId) .IsRequired(false); } 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) { - return Songs.FirstOrDefault(sng => sng.SongID == song.SongID) != null ? true : false; + return Songs.FirstOrDefault(sng => sng.Id == song.Id) != null ? true : false; } } diff --git a/Database/Contexts/UserContext.cs b/Database/Contexts/UserContext.cs index f8b7c6b..987ade5 100644 --- a/Database/Contexts/UserContext.cs +++ b/Database/Contexts/UserContext.cs @@ -32,11 +32,11 @@ public class UserContext : DbContext 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) { - return Users.FirstOrDefault(usr => usr.UserID == user.UserID) != null ? true : false; + return Users.FirstOrDefault(usr => usr.Id == user.Id) != null ? true : false; } } diff --git a/Models/Album.cs b/Models/Album.cs index 7fe3d64..b8ec4b9 100644 --- a/Models/Album.cs +++ b/Models/Album.cs @@ -6,8 +6,8 @@ namespace Icarus.Models; public class Album { - [JsonProperty("album_id")] - public int AlbumID { get; set; } + [JsonProperty("id")] + public int Id { get; set; } [JsonProperty("title")] public string Title { get; set; } [JsonProperty("album_artist")] diff --git a/Models/Artist.cs b/Models/Artist.cs index ca66412..24f3cac 100644 --- a/Models/Artist.cs +++ b/Models/Artist.cs @@ -6,8 +6,8 @@ namespace Icarus.Models; public class Artist { - [JsonProperty("artist_id")] - public int ArtistID { get; set; } + [JsonProperty("id")] + public int Id { get; set; } [JsonProperty("name")] [Column("Artist")] public string Name { get; set; } diff --git a/Models/CoverArt.cs b/Models/CoverArt.cs index 5c22aab..65426ca 100644 --- a/Models/CoverArt.cs +++ b/Models/CoverArt.cs @@ -5,8 +5,8 @@ namespace Icarus.Models; public class CoverArt { #region Properties - [JsonProperty("cover_art_id")] - public int CoverArtID { get; set; } + [JsonProperty("id")] + public int Id { get; set; } [JsonProperty("title")] public string SongTitle { get; set; } [JsonIgnore] diff --git a/Models/Genre.cs b/Models/Genre.cs index b157a5f..97ba1b0 100644 --- a/Models/Genre.cs +++ b/Models/Genre.cs @@ -6,8 +6,8 @@ namespace Icarus.Models; public class Genre { - [JsonProperty("genre_id")] - public int GenreID { get; set; } + [JsonProperty("id")] + public int Id { get; set; } [JsonProperty("genre")] [Column("Category")] public string GenreName { get; set; } diff --git a/Models/LoginResult.cs b/Models/LoginResult.cs index d3183d6..dd28313 100644 --- a/Models/LoginResult.cs +++ b/Models/LoginResult.cs @@ -5,7 +5,7 @@ namespace Icarus.Models; public class LoginResult : BaseResult { [JsonProperty("user_id")] - public int UserID { get; set; } + public int UserId { get; set; } [JsonProperty("username")] public string Username { get; set; } [JsonProperty("token")] diff --git a/Models/Song.cs b/Models/Song.cs index ed6b4dc..9d9ef5f 100644 --- a/Models/Song.cs +++ b/Models/Song.cs @@ -7,8 +7,8 @@ namespace Icarus.Models; public class Song { #region Properties - [JsonProperty("song_id")] - public int SongID { get; set; } + [JsonProperty("id")] + public int Id { get; set; } [JsonProperty("title")] public string Title { get; set; } [JsonProperty("album")] @@ -37,17 +37,17 @@ public class Song [JsonProperty("disc_count")] public int DiscCount { get; set; } = 0; [JsonIgnore] - public int? AlbumID { get; set; } + public int? AlbumId { get; set; } [JsonIgnore] - public int? ArtistID { get; set; } + public int? ArtistId { get; set; } [JsonIgnore] - public int? GenreID { get; set; } + public int? GenreId { get; set; } [JsonIgnore] - public int? CoverArtID { get; set; } + public int? CoverArtId { get; set; } [JsonProperty("date_created")] public DateTime DateCreated { get; set; } [JsonProperty("user_id")] - public int UserID { get; set; } + public int UserId { get; set; } #endregion diff --git a/Models/User.cs b/Models/User.cs index f69727e..4752c6c 100644 --- a/Models/User.cs +++ b/Models/User.cs @@ -9,10 +9,10 @@ namespace Icarus.Models; public class User { #region Properties - [JsonProperty("user_id")] - [Column("UserID")] + [JsonProperty("id")] + [Column("Id")] [Key] - public int UserID { get; set; } + public int Id { get; set; } [JsonProperty("username")] public string Username { get; set; } [JsonProperty("password")] diff --git a/Scripts/MySQL/create_database.sql b/Scripts/MySQL/create_database.sql index de609e8..10b54b0 100644 --- a/Scripts/MySQL/create_database.sql +++ b/Scripts/MySQL/create_database.sql @@ -3,39 +3,39 @@ CREATE DATABASE Icarus; USE Icarus; CREATE TABLE CoverArt ( - CoverArtID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, SongTitle TEXT NOT NULL, ImagePath TEXT NOT NULL, - PRIMARY KEY (CoverArtID) + PRIMARY KEY (Id) ); CREATE TABLE Album ( - AlbumID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, Title TEXT NOT NULL, Artist TEXT NOT NULL, Year INT NOT NULL, - PRIMARY KEY (AlbumID) + PRIMARY KEY (Id) ); CREATE TABLE Artist ( - ArtistID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, Artist TEXT NOT NULL, - PRIMARY KEY (ArtistID) + PRIMARY KEY (Id) ); CREATE TABLE Genre ( - GenreID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, Category TEXT NOT NULL, - PRIMARY KEY (GenreID) + PRIMARY KEY (Id) ); CREATE TABLE Song ( - SongID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, Title TEXT NOT NULL, Artist TEXT NOT NULL, Album TEXT NOT NULL, @@ -49,21 +49,21 @@ CREATE TABLE Song ( DiscCount INT NOT NULL, SongDirectory TEXT NOT NULL, Filename TEXT NOT NULL, - CoverArtID INT NOT NULL, - ArtistID INT NOT NULL, - AlbumID INT NOT NULL, - GenreID INT NOT NULL, + CoverArtId INT NOT NULL, + ArtistId INT NOT NULL, + AlbumId INT NOT NULL, + GenreId INT NOT NULL, DateCreated DATETIME DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (SongID), - CONSTRAINT FK_Song_CoverArtID FOREIGN KEY (CoverArtID) REFERENCES CoverArt (CoverArtID), - CONSTRAINT FK_Song_ArtistID FOREIGN KEY (ArtistID) REFERENCES Artist (ArtistID), - CONSTRAINT FK_Song_AlbumID FOREIGN KEY (AlbumID) REFERENCES Album (AlbumID), - CONSTRAINT FK_Song_GenreID FOREIGN KEY (GenreID) REFERENCES Genre (GenreID) + PRIMARY KEY (Id), + CONSTRAINT FK_Song_CoverArtId FOREIGN KEY (CoverArtId) REFERENCES CoverArt (Id), + CONSTRAINT FK_Song_ArtistId FOREIGN KEY (ArtistId) REFERENCES Artist (Id), + CONSTRAINT FK_Song_AlbumId FOREIGN KEY (AlbumId) REFERENCES Album (Id), + CONSTRAINT FK_Song_GenreId FOREIGN KEY (GenreId) REFERENCES Genre (Id) ); CREATE TABLE User ( - UserID INT NOT NULL AUTO_INCREMENT, + Id INT NOT NULL AUTO_INCREMENT, Firstname TEXT NOT NULL, Lastname TEXT NOT NULL, Email TEXT NOT NULL, @@ -74,26 +74,5 @@ CREATE TABLE User ( Status TEXT DEFAULT 'Active', LastLogin DATETIME NULL, - PRIMARY KEY (UserID) -); - -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) + PRIMARY KEY (Id) ); diff --git a/Scripts/MySQL/tables/ArtistContext.sql b/Scripts/MySQL/tables/ArtistContext.sql new file mode 100644 index 0000000..1116735 --- /dev/null +++ b/Scripts/MySQL/tables/ArtistContext.sql @@ -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; +