This commit is contained in:
Steven Hildreth 2018-11-02 17:20:36 -05:00
parent f8fb347f95
commit 382156d136
20 changed files with 291 additions and 6 deletions

View file

@ -16,6 +16,8 @@ namespace Roadie.Library.Data
[Column("artistType", TypeName = "enum")] [Column("artistType", TypeName = "enum")]
public string ArtistType { get; set; } public string ArtistType { get; set; }
public ICollection<ArtistAssociation> AssociatedArtists { get; set; }
[Column("bandStatus", TypeName = "enum")] [Column("bandStatus", TypeName = "enum")]
public BandStatus? BandStatus { get; set; } public BandStatus? BandStatus { get; set; }
@ -30,6 +32,10 @@ namespace Roadie.Library.Data
[MaxLength(50)] [MaxLength(50)]
public string DiscogsId { get; set; } public string DiscogsId { get; set; }
public ICollection<ArtistGenre> Genres { get; set; }
public ICollection<Image> Images { get; set; }
[Column("isniList", TypeName = "text")] [Column("isniList", TypeName = "text")]
[MaxLength(65535)] [MaxLength(65535)]
public string ISNIList { get; set; } public string ISNIList { get; set; }

View file

@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("artistAssociation")]
public partial class ArtistAssociation
{
public Artist Artist { get; set; }
[Column("artistId")]
[Required]
public int ArtistId { get; set; }
public Artist AssociatedArtist { get; set; }
[Column("associatedArtistId")]
[Required]
public int AssociatedArtistId { get; set; }
[Key]
[Column("id")]
public int Id { get; set; }
}
}

View file

@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("artistGenreTable")]
public partial class ArtistGenre
{
public Artist Artist { get; set; }
[Column("artistId")]
[Required]
public int ArtistId { get; set; }
public Genre Genre { get; set; }
[Column("genreId")]
[Required]
public int GenreId { get; set; }
[Column("id")]
[Key]
public int Id { get; set; }
}
}

View file

@ -0,0 +1,23 @@
using Roadie.Library.Enums;
using Roadie.Library.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("bookmark")]
public partial class Bookmark : EntityBase
{
[Column("bookmarkTargetId")]
public int BookmarkTargetId { get; set; }
[Column("bookmarkType")]
public BookmarkType? BookmarkType { get; set; }
[Column("userId")]
[Required]
public int UserId { get; set; }
public ApplicationUser User { get; set; }
}
}

View file

@ -1,17 +1,31 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Roadie.Library.Identity;
namespace Roadie.Library.Data namespace Roadie.Library.Data
{ {
public interface IRoadieDbContext public interface IRoadieDbContext
{ {
DbSet<ArtistAssociation> ArtistAssociations { get; set; }
DbSet<ArtistGenre> ArtistGenres { get; set; }
DbSet<Artist> Artists { get; set; } DbSet<Artist> Artists { get; set; }
DbSet<Bookmark> Bookmarks { get; set; }
DbSet<CollectionRelease> CollectionReleases { get; set; } DbSet<CollectionRelease> CollectionReleases { get; set; }
DbSet<Collection> Collections { get; set; } DbSet<Collection> Collections { get; set; }
DbSet<Genre> Genres { get; set; }
DbSet<Image> Images { get; set; }
DbSet<Label> Labels { get; set; } DbSet<Label> Labels { get; set; }
DbSet<Playlist> Playlists { get; set; } DbSet<Playlist> Playlists { get; set; }
DbSet<PlaylistTrack> PlaylistTracks { get; set; }
DbSet<ReleaseGenre> ReleaseGenres { get; set; } DbSet<ReleaseGenre> ReleaseGenres { get; set; }
DbSet<ReleaseLabel> ReleaseLabels { get; set; }
DbSet<ReleaseMedia> ReleaseMedias { get; set; } DbSet<ReleaseMedia> ReleaseMedias { get; set; }
DbSet<Release> Releases { get; set; } DbSet<Release> Releases { get; set; }
DbSet<Request> Requests { get; set; }
DbSet<Submission> Submissions { get; set; }
DbSet<Track> Tracks { get; set; } DbSet<Track> Tracks { get; set; }
DbSet<UserArtist> UserArtists { get; set; }
DbSet<UserRelease> UserReleases { get; set; }
DbSet<ApplicationUser> Users { get; set; }
DbSet<UserTrack> UserTracks { get; set; }
} }
} }

View file

@ -9,7 +9,7 @@ namespace Roadie.Library.Data
[Column("artistId")] [Column("artistId")]
public int? ArtistId { get; set; } public int? ArtistId { get; set; }
[Column("image", TypeName = "blob")] [Column("image", TypeName = "mediumblob")]
public byte[] Bytes { get; set; } public byte[] Bytes { get; set; }
[Column("caption")] [Column("caption")]

View file

@ -27,6 +27,8 @@ namespace Roadie.Library.Data
public ICollection<ReleaseGenre> Genres { get; set; } public ICollection<ReleaseGenre> Genres { get; set; }
public ICollection<Image> Images { get; set; }
[Column("isVirtual")] [Column("isVirtual")]
public bool? IsVirtual { get; set; } public bool? IsVirtual { get; set; }

View file

@ -0,0 +1,21 @@
using Roadie.Library.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("request")]
public partial class Request : EntityBase
{
[Column("description")]
[MaxLength(500)]
[Required]
public string Description { get; set; }
public ApplicationUser User { get; set; }
[Column("userId")]
[Required]
public int UserId { get; set; }
}
}

View file

@ -1,20 +1,34 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Roadie.Library.Enums; using Roadie.Library.Enums;
using Roadie.Library.Identity;
using System; using System;
namespace Roadie.Library.Data namespace Roadie.Library.Data
{ {
public class RoadieDbContext : DbContext, IRoadieDbContext public class RoadieDbContext : DbContext, IRoadieDbContext
{ {
public DbSet<ArtistAssociation> ArtistAssociations { get; set; }
public DbSet<ArtistGenre> ArtistGenres { get; set; }
public DbSet<Artist> Artists { get; set; } public DbSet<Artist> Artists { get; set; }
public DbSet<Bookmark> Bookmarks { get; set; }
public DbSet<CollectionRelease> CollectionReleases { get; set; } public DbSet<CollectionRelease> CollectionReleases { get; set; }
public DbSet<Collection> Collections { get; set; } public DbSet<Collection> Collections { get; set; }
public DbSet<Genre> Genres { get; set; }
public DbSet<Image> Images { get; set; }
public DbSet<Label> Labels { get; set; } public DbSet<Label> Labels { get; set; }
public DbSet<Playlist> Playlists { get; set; } public DbSet<Playlist> Playlists { get; set; }
public DbSet<PlaylistTrack> PlaylistTracks { get; set; }
public DbSet<ReleaseGenre> ReleaseGenres { get; set; } public DbSet<ReleaseGenre> ReleaseGenres { get; set; }
public DbSet<ReleaseLabel> ReleaseLabels { get; set; }
public DbSet<ReleaseMedia> ReleaseMedias { get; set; } public DbSet<ReleaseMedia> ReleaseMedias { get; set; }
public DbSet<Release> Releases { get; set; } public DbSet<Release> Releases { get; set; }
public DbSet<Request> Requests { get; set; }
public DbSet<Submission> Submissions { get; set; }
public DbSet<Track> Tracks { get; set; } public DbSet<Track> Tracks { get; set; }
public DbSet<UserArtist> UserArtists { get; set; }
public DbSet<UserRelease> UserReleases { get; set; }
public DbSet<ApplicationUser> Users { get; set; }
public DbSet<UserTrack> UserTracks { get; set; }
public RoadieDbContext(DbContextOptions<RoadieDbContext> options) public RoadieDbContext(DbContextOptions<RoadieDbContext> options)
: base(options) : base(options)
@ -47,6 +61,19 @@ namespace Roadie.Library.Data
v => (CollectionType)Enum.Parse(typeof(CollectionType), v)) v => (CollectionType)Enum.Parse(typeof(CollectionType), v))
.HasDefaultValue(CollectionType.Unknown); .HasDefaultValue(CollectionType.Unknown);
builder
.Entity<Bookmark>()
.Property(e => e.BookmarkType)
.HasConversion(
v => v.ToString(),
v => (BookmarkType)Enum.Parse(typeof(BookmarkType), v))
.HasDefaultValue(BookmarkType.Unknown);
builder.Entity<ArtistAssociation>()
.HasOne(aa => aa.Artist)
.WithMany(a => a.AssociatedArtists)
.HasForeignKey(aa => aa.AssociatedArtistId);
builder.Entity<ReleaseLabel>() builder.Entity<ReleaseLabel>()
.HasOne(rl => rl.Release) .HasOne(rl => rl.Release)
.WithMany(r => r.Labels) .WithMany(r => r.Labels)
@ -89,6 +116,12 @@ namespace Roadie.Library.Data
.HasOne(cr => cr.Collection) .HasOne(cr => cr.Collection)
.WithMany(c => c.Releases) .WithMany(c => c.Releases)
.HasForeignKey(cr => cr.CollectionId); .HasForeignKey(cr => cr.CollectionId);
builder.Entity<Bookmark>()
.HasOne(b => b.User)
.WithMany(u => u.Bookmarks)
.HasForeignKey(b => b.UserId);
} }
} }
} }

View file

@ -0,0 +1,14 @@
using Roadie.Library.Identity;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("submission")]
public partial class Submission : EntityBase
{
public ApplicationUser User { get; set; }
[Column("userId")]
public int UserId { get; set; }
}
}

View file

@ -0,0 +1,31 @@
using Roadie.Library.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("userartist")]
public partial class UserArtist : EntityBase
{
public Artist Artist { get; set; }
[Column("artistId")]
[Required]
public int ArtistId { get; set; }
[Column("isDisliked")]
public bool? IsDisliked { get; set; }
[Column("isFavorite")]
public bool? IsFavorite { get; set; }
[Column("rating")]
public short Rating { get; set; }
public ApplicationUser User { get; set; }
[Column("userId")]
[Required]
public int UserId { get; set; }
}
}

View file

@ -0,0 +1,31 @@
using Roadie.Library.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("userrelease")]
public partial class UserRelease : EntityBase
{
[Column("isDisliked")]
public bool? IsDisliked { get; set; }
[Column("isFavorite")]
public bool? IsFavorite { get; set; }
[Column("rating")]
public short Rating { get; set; }
public Release Release { get; set; }
[Column("releaseId")]
[Required]
public int ReleaseId { get; set; }
public ApplicationUser User { get; set; }
[Column("userId")]
[Required]
public int UserId { get; set; }
}
}

View file

@ -0,0 +1,38 @@
using Roadie.Library.Identity;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Roadie.Library.Data
{
[Table("usertrack")]
public partial class UserTrack : EntityBase
{
[Column("isDisliked")]
public bool? IsDisliked { get; set; }
[Column("isFavorite")]
public bool? IsFavorite { get; set; }
[Column("lastPlayed")]
public DateTime? LastPlayed { get; set; }
[Column("playedCount")]
public int? PlayedCount { get; set; }
[Column("rating")]
public short Rating { get; set; }
public Track Track { get; set; }
[Column("trackId")]
[Required]
public int TrackId { get; set; }
public ApplicationUser User { get; set; }
[Column("userId")]
[Required]
public int UserId { get; set; }
}
}

View file

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Roadie.Library.Enums namespace Roadie.Library.Enums
{ {
public enum ArtistType : int public enum ArtistType : short
{ {
Unknown = 0, Unknown = 0,
Person, Person,

View file

@ -6,8 +6,9 @@ using System.Threading.Tasks;
namespace Roadie.Library.Enums namespace Roadie.Library.Enums
{ {
public enum BandStatus public enum BandStatus : short
{ {
Unknown = 0,
Active, Active,
OnHold, OnHold,
SplitUp, SplitUp,

View file

@ -8,6 +8,7 @@ namespace Roadie.Library.Enums
{ {
public enum BookmarkType : short public enum BookmarkType : short
{ {
Unknown = 0,
Artist = 1, Artist = 1,
Release = 2, Release = 2,
Track = 3, Track = 3,

View file

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Roadie.Library.Enums namespace Roadie.Library.Enums
{ {
public enum RequestStatus public enum RequestStatus : short
{ {
New = 0, New = 0,
Processed = 1 Processed = 1

View file

@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using System; using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -36,5 +37,7 @@ namespace Roadie.Library.Identity
[Column("status")] [Column("status")]
public short? Status { get; set; } public short? Status { get; set; }
public ICollection<UsersInRoles> Users { get; set; }
} }
} }

View file

@ -14,9 +14,13 @@ namespace Roadie.Library.Identity
[StringLength(100)] [StringLength(100)]
public string ApiToken { get; set; } public string ApiToken { get; set; }
public ICollection<UserArtist> ArtistRatings { get; set; }
[Column("avatar", TypeName = "blob")] [Column("avatar", TypeName = "blob")]
public byte[] Avatar { get; set; } public byte[] Avatar { get; set; }
public ICollection<Bookmark> Bookmarks { get; set; }
[Column("createdDate")] [Column("createdDate")]
public DateTime? CreatedDate { get; set; } public DateTime? CreatedDate { get; set; }
@ -74,6 +78,8 @@ namespace Roadie.Library.Identity
[Column("playerTrackLimit")] [Column("playerTrackLimit")]
public short? PlayerTrackLimit { get; set; } public short? PlayerTrackLimit { get; set; }
public ICollection<Playlist> Playlists { get; set; }
[Column("profile", TypeName = "text")] [Column("profile", TypeName = "text")]
[StringLength(65535)] [StringLength(65535)]
public string Profile { get; set; } public string Profile { get; set; }
@ -87,13 +93,21 @@ namespace Roadie.Library.Identity
[Column("registeredOn")] [Column("registeredOn")]
public DateTime? RegisteredOn { get; set; } public DateTime? RegisteredOn { get; set; }
public ICollection<UserRelease> ReleaseRatings { get; set; }
public ICollection<Request> Requests { get; set; }
[Column("roadieId")] [Column("roadieId")]
[StringLength(36)] [StringLength(36)]
public string RoadieId { get; set; } public string RoadieId { get; set; }
public ICollection<UsersInRoles> Roles { get; set; }
[Column("status")] [Column("status")]
public short? Status { get; set; } public short? Status { get; set; }
public ICollection<Submission> Submissions { get; set; }
[Column("timeformat")] [Column("timeformat")]
[StringLength(50)] [StringLength(50)]
public string Timeformat { get; set; } public string Timeformat { get; set; }
@ -102,11 +116,11 @@ namespace Roadie.Library.Identity
[StringLength(50)] [StringLength(50)]
public string Timezone { get; set; } public string Timezone { get; set; }
public ICollection<UserTrack> TrackRatings { get; set; }
[Column("username")] [Column("username")]
[Required] [Required]
[StringLength(20)] [StringLength(20)]
public string Username { get; set; } public string Username { get; set; }
public ICollection<Playlist> Playlists { get; set; }
} }
} }

View file

@ -16,5 +16,8 @@ namespace Roadie.Library.Identity
public int UserId { get; set; } public int UserId { get; set; }
[Column("userRoleId")] [Column("userRoleId")]
public int UserRoleId { get; set; } public int UserRoleId { get; set; }
public ApplicationUser User { get; set; }
public ApplicationRole Role { get; set; }
} }
} }