From 98e17766b203734a1817eed94338e2d25f4395f7 Mon Sep 17 00:00:00 2001 From: transtrike Date: Sat, 13 Feb 2021 16:20:18 +0200 Subject: Project Restructure P.1 --- src/Data/DevHive.Data.Models/Comment.cs | 20 +++++++++++++ .../DevHive.Data.Models/DevHive.Data.Models.csproj | 11 ++++++++ src/Data/DevHive.Data.Models/Language.cs | 15 ++++++++++ src/Data/DevHive.Data.Models/Post.cs | 26 +++++++++++++++++ src/Data/DevHive.Data.Models/ProfilePicture.cs | 15 ++++++++++ src/Data/DevHive.Data.Models/Rating.cs | 17 +++++++++++ src/Data/DevHive.Data.Models/Role.cs | 17 +++++++++++ src/Data/DevHive.Data.Models/Technology.cs | 15 ++++++++++ src/Data/DevHive.Data.Models/User.cs | 33 ++++++++++++++++++++++ 9 files changed, 169 insertions(+) create mode 100644 src/Data/DevHive.Data.Models/Comment.cs create mode 100644 src/Data/DevHive.Data.Models/DevHive.Data.Models.csproj create mode 100644 src/Data/DevHive.Data.Models/Language.cs create mode 100644 src/Data/DevHive.Data.Models/Post.cs create mode 100644 src/Data/DevHive.Data.Models/ProfilePicture.cs create mode 100644 src/Data/DevHive.Data.Models/Rating.cs create mode 100644 src/Data/DevHive.Data.Models/Role.cs create mode 100644 src/Data/DevHive.Data.Models/Technology.cs create mode 100644 src/Data/DevHive.Data.Models/User.cs (limited to 'src/Data/DevHive.Data.Models') diff --git a/src/Data/DevHive.Data.Models/Comment.cs b/src/Data/DevHive.Data.Models/Comment.cs new file mode 100644 index 0000000..e2bb21d --- /dev/null +++ b/src/Data/DevHive.Data.Models/Comment.cs @@ -0,0 +1,20 @@ +using System; +using DevHive.Data.Interfaces.Models; + +namespace DevHive.Data.Models +{ + public class Comment : IComment + { + public Guid Id { get; set; } + + // public Guid PostId { get; set; } + public Post Post { get; set; } + + // public Guid CreatorId { get; set; } + public User Creator { get; set; } + + public string Message { get; set; } + + public DateTime TimeCreated { get; set; } + } +} diff --git a/src/Data/DevHive.Data.Models/DevHive.Data.Models.csproj b/src/Data/DevHive.Data.Models/DevHive.Data.Models.csproj new file mode 100644 index 0000000..ebf5f9c --- /dev/null +++ b/src/Data/DevHive.Data.Models/DevHive.Data.Models.csproj @@ -0,0 +1,11 @@ + + + + net5.0 + + + + + + + diff --git a/src/Data/DevHive.Data.Models/Language.cs b/src/Data/DevHive.Data.Models/Language.cs new file mode 100644 index 0000000..7ad8ff2 --- /dev/null +++ b/src/Data/DevHive.Data.Models/Language.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using DevHive.Data.Interfaces.Models; + +namespace DevHive.Data.Models +{ + public class Language : ILanguage + { + public Guid Id { get; set; } + + public string Name { get; set; } + + public HashSet Users { get; set; } = new(); + } +} diff --git a/src/Data/DevHive.Data.Models/Post.cs b/src/Data/DevHive.Data.Models/Post.cs new file mode 100644 index 0000000..3f3d8c9 --- /dev/null +++ b/src/Data/DevHive.Data.Models/Post.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using DevHive.Data.Interfaces.Models; +using DevHive.Data.RelationModels; + +namespace DevHive.Data.Models +{ + [Table("Posts")] + public class Post : IPost + { + public Guid Id { get; set; } + + public User Creator { get; set; } + + public string Message { get; set; } + + public DateTime TimeCreated { get; set; } + + public List Comments { get; set; } = new(); + + public Rating Rating { get; set; } = new(); + + public List Attachments { get; set; } = new(); + } +} diff --git a/src/Data/DevHive.Data.Models/ProfilePicture.cs b/src/Data/DevHive.Data.Models/ProfilePicture.cs new file mode 100644 index 0000000..d5cc397 --- /dev/null +++ b/src/Data/DevHive.Data.Models/ProfilePicture.cs @@ -0,0 +1,15 @@ +using System; +using DevHive.Data.Interfaces.Models; + +namespace DevHive.Data.Models +{ + public class ProfilePicture: IProfilePicture + { + public Guid Id { get; set; } + + public Guid UserId { get; set; } + public User User { get; set; } + + public string PictureURL { get; set; } + } +} diff --git a/src/Data/DevHive.Data.Models/Rating.cs b/src/Data/DevHive.Data.Models/Rating.cs new file mode 100644 index 0000000..e1bedd2 --- /dev/null +++ b/src/Data/DevHive.Data.Models/Rating.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using DevHive.Data.Interfaces.Models; + +namespace DevHive.Data.Models +{ + public class Rating : IRating + { + public Guid Id { get; set; } + + public Guid PostId { get; set; } + + public Post Post { get; set; } + + public int Rate { get; set; } + } +} diff --git a/src/Data/DevHive.Data.Models/Role.cs b/src/Data/DevHive.Data.Models/Role.cs new file mode 100644 index 0000000..259d867 --- /dev/null +++ b/src/Data/DevHive.Data.Models/Role.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.DataAnnotations.Schema; +using System.Collections.Generic; +using DevHive.Data.Interfaces.Models; +using Microsoft.AspNetCore.Identity; +using System; + +namespace DevHive.Data.Models +{ + [Table("Roles")] + public class Role : IdentityRole, IRole + { + public const string DefaultRole = "User"; + public const string AdminRole = "Admin"; + + public HashSet Users { get; set; } = new(); + } +} diff --git a/src/Data/DevHive.Data.Models/Technology.cs b/src/Data/DevHive.Data.Models/Technology.cs new file mode 100644 index 0000000..6f98f0b --- /dev/null +++ b/src/Data/DevHive.Data.Models/Technology.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using DevHive.Data.Interfaces.Models; + +namespace DevHive.Data.Models +{ + public class Technology : ITechnology + { + public Guid Id { get; set; } + + public string Name { get; set; } + + public HashSet Users { get; set; } = new(); + } +} diff --git a/src/Data/DevHive.Data.Models/User.cs b/src/Data/DevHive.Data.Models/User.cs new file mode 100644 index 0000000..983d073 --- /dev/null +++ b/src/Data/DevHive.Data.Models/User.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using DevHive.Data.Interfaces.Models; +using DevHive.Data.RelationModels; +using Microsoft.AspNetCore.Identity; + +namespace DevHive.Data.Models +{ + [Table("Users")] + public class User : IdentityUser, IUser + { + public string FirstName { get; set; } + + public string LastName { get; set; } + + public ProfilePicture ProfilePicture { get; set; } + + public HashSet Languages { get; set; } = new(); + + public HashSet Technologies { get; set; } = new(); + + public HashSet Roles { get; set; } = new(); + + public HashSet Posts { get; set; } = new(); + + public HashSet Friends { get; set; } = new(); + + public HashSet Comments { get; set; } = new(); + + public HashSet RatedPosts { get; set; } = new(); + } +} -- cgit v1.2.3