aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/Models
diff options
context:
space:
mode:
authorVictor S <57849063+transtrike@users.noreply.github.com>2021-02-05 10:54:49 -0800
committerGitHub <noreply@github.com>2021-02-05 10:54:49 -0800
commitf4a70c6430db923af9fa9958a11c2d6612cb52cc (patch)
treeca0ea403ba5500df20bc8854ec50529a25c64245 /src/DevHive.Data/Models
parent1ccdefdac025b1b986ad2bd0bc3eda7505d6e7c3 (diff)
parent2269b5aa6c8d3dcb407c34fa256200bdc573585a (diff)
downloadDevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.tar
DevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.tar.gz
DevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.zip
Merge pull request #18 from Team-Kaleidoscope/devv0.1
First stage: Complete. Awaiting further progress...
Diffstat (limited to 'src/DevHive.Data/Models')
-rw-r--r--src/DevHive.Data/Models/Comment.cs20
-rw-r--r--src/DevHive.Data/Models/Language.cs15
-rw-r--r--src/DevHive.Data/Models/Post.cs26
-rw-r--r--src/DevHive.Data/Models/ProfilePicture.cs15
-rw-r--r--src/DevHive.Data/Models/Rating.cs17
-rw-r--r--src/DevHive.Data/Models/Role.cs17
-rw-r--r--src/DevHive.Data/Models/Technology.cs15
-rw-r--r--src/DevHive.Data/Models/User.cs33
8 files changed, 158 insertions, 0 deletions
diff --git a/src/DevHive.Data/Models/Comment.cs b/src/DevHive.Data/Models/Comment.cs
new file mode 100644
index 0000000..e2bb21d
--- /dev/null
+++ b/src/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/DevHive.Data/Models/Language.cs b/src/DevHive.Data/Models/Language.cs
new file mode 100644
index 0000000..7ad8ff2
--- /dev/null
+++ b/src/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<User> Users { get; set; } = new();
+ }
+}
diff --git a/src/DevHive.Data/Models/Post.cs b/src/DevHive.Data/Models/Post.cs
new file mode 100644
index 0000000..3f3d8c9
--- /dev/null
+++ b/src/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<Comment> Comments { get; set; } = new();
+
+ public Rating Rating { get; set; } = new();
+
+ public List<PostAttachments> Attachments { get; set; } = new();
+ }
+}
diff --git a/src/DevHive.Data/Models/ProfilePicture.cs b/src/DevHive.Data/Models/ProfilePicture.cs
new file mode 100644
index 0000000..d5cc397
--- /dev/null
+++ b/src/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/DevHive.Data/Models/Rating.cs b/src/DevHive.Data/Models/Rating.cs
new file mode 100644
index 0000000..e1bedd2
--- /dev/null
+++ b/src/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/DevHive.Data/Models/Role.cs b/src/DevHive.Data/Models/Role.cs
new file mode 100644
index 0000000..259d867
--- /dev/null
+++ b/src/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<Guid>, IRole
+ {
+ public const string DefaultRole = "User";
+ public const string AdminRole = "Admin";
+
+ public HashSet<User> Users { get; set; } = new();
+ }
+}
diff --git a/src/DevHive.Data/Models/Technology.cs b/src/DevHive.Data/Models/Technology.cs
new file mode 100644
index 0000000..6f98f0b
--- /dev/null
+++ b/src/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<User> Users { get; set; } = new();
+ }
+}
diff --git a/src/DevHive.Data/Models/User.cs b/src/DevHive.Data/Models/User.cs
new file mode 100644
index 0000000..983d073
--- /dev/null
+++ b/src/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<Guid>, IUser
+ {
+ public string FirstName { get; set; }
+
+ public string LastName { get; set; }
+
+ public ProfilePicture ProfilePicture { get; set; }
+
+ public HashSet<Language> Languages { get; set; } = new();
+
+ public HashSet<Technology> Technologies { get; set; } = new();
+
+ public HashSet<Role> Roles { get; set; } = new();
+
+ public HashSet<Post> Posts { get; set; } = new();
+
+ public HashSet<User> Friends { get; set; } = new();
+
+ public HashSet<Comment> Comments { get; set; } = new();
+
+ public HashSet<RatedPost> RatedPosts { get; set; } = new();
+ }
+}