aboutsummaryrefslogtreecommitdiff
path: root/src/Data/DevHive.Data.Models
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/DevHive.Data.Models')
-rw-r--r--src/Data/DevHive.Data.Models/Comment.cs20
-rw-r--r--src/Data/DevHive.Data.Models/DevHive.Data.Models.csproj11
-rw-r--r--src/Data/DevHive.Data.Models/Language.cs15
-rw-r--r--src/Data/DevHive.Data.Models/Post.cs26
-rw-r--r--src/Data/DevHive.Data.Models/ProfilePicture.cs15
-rw-r--r--src/Data/DevHive.Data.Models/Rating.cs17
-rw-r--r--src/Data/DevHive.Data.Models/Role.cs17
-rw-r--r--src/Data/DevHive.Data.Models/Technology.cs15
-rw-r--r--src/Data/DevHive.Data.Models/User.cs33
9 files changed, 169 insertions, 0 deletions
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 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>net5.0</TargetFramework>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\Common\DevHive.Common.Models\DevHive.Common.csproj" />
+ </ItemGroup>
+
+</Project>
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<User> 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<Comment> Comments { get; set; } = new();
+
+ public Rating Rating { get; set; } = new();
+
+ public List<PostAttachments> 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<Guid>, IRole
+ {
+ public const string DefaultRole = "User";
+ public const string AdminRole = "Admin";
+
+ public HashSet<User> 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<User> 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<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();
+ }
+}