aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Data/Database/Todo
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-10-30 16:40:03 +0100
committerivarlovlie <git@ivarlovlie.no>2022-10-30 16:40:03 +0100
commit0725e4f7cf4c6f723264b6d461b91c660d144cb7 (patch)
treeaae5876b5760c80679161d918c34d753ec0e2582 /code/api/src/Data/Database/Todo
parentd76c180c9631df015d37138045c79a46cca350e8 (diff)
downloadgreatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.tar.xz
greatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.zip
feat: Apiwork
Diffstat (limited to 'code/api/src/Data/Database/Todo')
-rw-r--r--code/api/src/Data/Database/Todo/Todo.cs13
-rw-r--r--code/api/src/Data/Database/Todo/TodoComment.cs7
-rw-r--r--code/api/src/Data/Database/Todo/TodoLabel.cs8
-rw-r--r--code/api/src/Data/Database/Todo/TodoProject.cs8
-rw-r--r--code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs11
-rw-r--r--code/api/src/Data/Database/Todo/TodoStatus.cs37
6 files changed, 84 insertions, 0 deletions
diff --git a/code/api/src/Data/Database/Todo/Todo.cs b/code/api/src/Data/Database/Todo/Todo.cs
new file mode 100644
index 0000000..5fe3c9a
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/Todo.cs
@@ -0,0 +1,13 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class Todo : BaseWithOwner
+{
+ public int PublicId { get; set; }
+ public TodoStatus Status { get; set; }
+ public TodoProject Project { get; set; }
+ public Guid? AssignedUserId { get; set; }
+ public string Title { get; set; }
+ public string Description { get; set; }
+ public ICollection<TodoLabel> Labels { get; set; }
+ public ICollection<TodoComment> Comments { get; set; }
+}
diff --git a/code/api/src/Data/Database/Todo/TodoComment.cs b/code/api/src/Data/Database/Todo/TodoComment.cs
new file mode 100644
index 0000000..44dcbed
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/TodoComment.cs
@@ -0,0 +1,7 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TodoComment : BaseWithOwner
+{
+ public string Value { get; set; }
+ public Todo Todo { get; set; }
+}
diff --git a/code/api/src/Data/Database/Todo/TodoLabel.cs b/code/api/src/Data/Database/Todo/TodoLabel.cs
new file mode 100644
index 0000000..7753ade
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/TodoLabel.cs
@@ -0,0 +1,8 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TodoLabel : BaseWithOwner
+{
+ public string Name { get; set; }
+ public string Color { get; set; }
+ public Todo Todo { get; set; }
+}
diff --git a/code/api/src/Data/Database/Todo/TodoProject.cs b/code/api/src/Data/Database/Todo/TodoProject.cs
new file mode 100644
index 0000000..5e22bbe
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/TodoProject.cs
@@ -0,0 +1,8 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TodoProject : BaseWithOwner
+{
+ public string Name { get; set; }
+ public TodoVisibility Visibility { get; set; }
+ public Guid? ProjectId { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs b/code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs
new file mode 100644
index 0000000..964f831
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs
@@ -0,0 +1,11 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TodoProjectAccessControl
+{
+ public TodoProject Project { get; set; }
+ public Guid? UserId { get; set; }
+ public bool Browse { get; set; }
+ public bool Submit { get; set; }
+ public bool Comment { get; set; }
+ public bool Edit { get; set; }
+}
diff --git a/code/api/src/Data/Database/Todo/TodoStatus.cs b/code/api/src/Data/Database/Todo/TodoStatus.cs
new file mode 100644
index 0000000..9ace7d0
--- /dev/null
+++ b/code/api/src/Data/Database/Todo/TodoStatus.cs
@@ -0,0 +1,37 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TodoStatus : BaseWithOwner
+{
+ public string Name { get; set; }
+ public string Color { get; set; }
+ public Todo Todo { get; set; }
+
+ public static List<TodoStatus> GetDefaultStatusSetForTenant(Guid tenantId) {
+ return new List<TodoStatus>() {
+ new() {
+ Name = "Reported",
+ },
+ new() {
+ Name = "Resolved",
+ },
+ new() {
+ Name = "Fixed",
+ },
+ new() {
+ Name = "Implemented",
+ },
+ new() {
+ Name = "Won't fix",
+ },
+ new() {
+ Name = "By design",
+ },
+ new() {
+ Name = "Invalid",
+ },
+ new() {
+ Name = "Duplicate",
+ }
+ };
+ }
+}