#95: Id changes to models #99
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using NLog;
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System.Reflection.PortableExecutable;
|
||||
using Icarus.Models;
|
||||
using Icarus.Types;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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<TokenTierOne>(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
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,28 +25,28 @@ public class SongContext : DbContext
|
||||
.Property(s => s.Year)
|
||||
.IsRequired(false);
|
||||
modelBuilder.Entity<Song>()
|
||||
.Property(s => s.GenreID)
|
||||
.Property(s => s.GenreId)
|
||||
.IsRequired(false);
|
||||
modelBuilder.Entity<Song>()
|
||||
.Property(s => s.ArtistID)
|
||||
.Property(s => s.ArtistId)
|
||||
.IsRequired(false);
|
||||
modelBuilder.Entity<Song>()
|
||||
.Property(s => s.AlbumID)
|
||||
.Property(s => s.AlbumId)
|
||||
.IsRequired(false);
|
||||
modelBuilder.Entity<Song>()
|
||||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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")]
|
||||
|
||||
+2
-2
@@ -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; }
|
||||
|
||||
+2
-2
@@ -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]
|
||||
|
||||
+2
-2
@@ -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; }
|
||||
|
||||
@@ -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")]
|
||||
|
||||
+7
-7
@@ -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
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -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")]
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user