aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/Data/Database
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-10-05 14:45:21 +0200
committerivarlovlie <git@ivarlovlie.no>2022-10-05 14:45:21 +0200
commitb7e39b59fd0fc7b5610ebff29035bf622079e0d8 (patch)
tree64be84ebbdac9f7ceced983390c53b10d575af5c /server/src/Data/Database
parent2001c035fbb417ab0a3d42cfb04d17420bde4086 (diff)
downloadgreatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.tar.xz
greatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.zip
refactor: Change file structure
Diffstat (limited to 'server/src/Data/Database')
-rw-r--r--server/src/Data/Database/ApiAccessToken.cs31
-rw-r--r--server/src/Data/Database/Base.cs15
-rw-r--r--server/src/Data/Database/BaseWithOwner.cs19
-rw-r--r--server/src/Data/Database/Customer.cs6
-rw-r--r--server/src/Data/Database/CustomerContact.cs12
-rw-r--r--server/src/Data/Database/CustomerEvent.cs7
-rw-r--r--server/src/Data/Database/ForgotPasswordRequest.cs23
-rw-r--r--server/src/Data/Database/Project.cs7
-rw-r--r--server/src/Data/Database/Tenant.cs11
-rw-r--r--server/src/Data/Database/TimeCategory.cs31
-rw-r--r--server/src/Data/Database/TimeEntry.cs45
-rw-r--r--server/src/Data/Database/TimeLabel.cs31
-rw-r--r--server/src/Data/Database/Todo.cs13
-rw-r--r--server/src/Data/Database/TodoComment.cs7
-rw-r--r--server/src/Data/Database/TodoLabel.cs8
-rw-r--r--server/src/Data/Database/TodoProject.cs16
-rw-r--r--server/src/Data/Database/TodoProjectAccessControl.cs11
-rw-r--r--server/src/Data/Database/TodoStatus.cs45
-rw-r--r--server/src/Data/Database/User.cs37
19 files changed, 0 insertions, 375 deletions
diff --git a/server/src/Data/Database/ApiAccessToken.cs b/server/src/Data/Database/ApiAccessToken.cs
deleted file mode 100644
index 9582869..0000000
--- a/server/src/Data/Database/ApiAccessToken.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class ApiAccessToken : Base
-{
- public User User { get; set; }
- public DateTime ExpiryDate { get; set; }
- public bool AllowRead { get; set; }
- public bool AllowCreate { get; set; }
- public bool AllowUpdate { get; set; }
- public bool AllowDelete { get; set; }
- public bool HasExpired => ExpiryDate < AppDateTime.UtcNow;
- public ApiAccessTokenDto AsDto => new(this);
-
- public class ApiAccessTokenDto
- {
- public ApiAccessTokenDto(ApiAccessToken source) {
- ExpiryDate = source.ExpiryDate;
- AllowRead = source.AllowRead;
- AllowCreate = source.AllowCreate;
- AllowUpdate = source.AllowUpdate;
- AllowDelete = source.AllowDelete;
- }
-
- public DateTime ExpiryDate { get; set; }
- public bool AllowRead { get; set; }
- public bool AllowCreate { get; set; }
- public bool AllowUpdate { get; set; }
- public bool AllowDelete { get; set; }
- public bool HasExpired => ExpiryDate < AppDateTime.UtcNow;
- }
-} \ No newline at end of file
diff --git a/server/src/Data/Database/Base.cs b/server/src/Data/Database/Base.cs
deleted file mode 100644
index ae9efa2..0000000
--- a/server/src/Data/Database/Base.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class Base
-{
- protected Base() {
- Id = Guid.NewGuid();
- CreatedAt = AppDateTime.UtcNow;
- }
-
- public Guid Id { get; init; }
- public DateTime CreatedAt { get; init; }
- public DateTime? ModifiedAt { get; private set; }
- public bool Deleted { get; set; }
- public void Modified() => ModifiedAt = AppDateTime.UtcNow;
-} \ No newline at end of file
diff --git a/server/src/Data/Database/BaseWithOwner.cs b/server/src/Data/Database/BaseWithOwner.cs
deleted file mode 100644
index 1eb99f4..0000000
--- a/server/src/Data/Database/BaseWithOwner.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-/// <summary>
-/// Base class for all entities.
-/// </summary>
-public class BaseWithOwner : Base
-{
- protected BaseWithOwner() { }
-
- protected BaseWithOwner(Guid userId) {
- UserId = userId;
- }
-
- public Guid? UserId { get; set; }
- public Guid? TenantId { get; init; }
- public Guid? ModifiedById { get; init; }
- public Guid? CreatedById { get; init; }
- public Guid? DeletedById { get; init; }
-} \ No newline at end of file
diff --git a/server/src/Data/Database/Customer.cs b/server/src/Data/Database/Customer.cs
deleted file mode 100644
index c6b06a4..0000000
--- a/server/src/Data/Database/Customer.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class Customer : BaseWithOwner
-{
- public string Name { get; set; }
-} \ No newline at end of file
diff --git a/server/src/Data/Database/CustomerContact.cs b/server/src/Data/Database/CustomerContact.cs
deleted file mode 100644
index f5a951d..0000000
--- a/server/src/Data/Database/CustomerContact.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class CustomerContact : BaseWithOwner
-{
- public Customer Customer { get; set; }
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public string Email { get; set; }
- public string Phone { get; set; }
- public string WorkTitle { get; set; }
- public string Note { get; set; }
-}
diff --git a/server/src/Data/Database/CustomerEvent.cs b/server/src/Data/Database/CustomerEvent.cs
deleted file mode 100644
index da3e3ed..0000000
--- a/server/src/Data/Database/CustomerEvent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class CustomerEvent : BaseWithOwner
-{
- public Customer Customer { get; set; }
- public string Name { get; set; }
-}
diff --git a/server/src/Data/Database/ForgotPasswordRequest.cs b/server/src/Data/Database/ForgotPasswordRequest.cs
deleted file mode 100644
index 1510a35..0000000
--- a/server/src/Data/Database/ForgotPasswordRequest.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class ForgotPasswordRequest
-{
- public ForgotPasswordRequest() { }
-
- public ForgotPasswordRequest(User user) {
- CreatedAt = AppDateTime.UtcNow;
- Id = Guid.NewGuid();
- User = user;
- }
-
- public Guid Id { get; set; }
- public Guid UserId { get; set; }
- public User User { get; set; }
- public DateTime CreatedAt { get; set; }
-
- [NotMapped]
- public DateTime ExpirationDate => CreatedAt.AddMinutes(15);
-
- [NotMapped]
- public bool IsExpired => DateTime.Compare(ExpirationDate, AppDateTime.UtcNow) < 0;
-}
diff --git a/server/src/Data/Database/Project.cs b/server/src/Data/Database/Project.cs
deleted file mode 100644
index 7e694ee..0000000
--- a/server/src/Data/Database/Project.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class Project : BaseWithOwner
-{
- public string Name { get; set; }
- public Guid? CustomerId { get; set; }
-}
diff --git a/server/src/Data/Database/Tenant.cs b/server/src/Data/Database/Tenant.cs
deleted file mode 100644
index b185c7a..0000000
--- a/server/src/Data/Database/Tenant.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class Tenant : BaseWithOwner
-{
- public string Name { get; set; }
- public string Description { get; set; }
- public string ContactEmail { get; set; }
- public Guid MasterUserId { get; set; }
- public string MasterUserPassword { get; set; }
- public ICollection<User> Users { get; set; }
-}
diff --git a/server/src/Data/Database/TimeCategory.cs b/server/src/Data/Database/TimeCategory.cs
deleted file mode 100644
index 69c6957..0000000
--- a/server/src/Data/Database/TimeCategory.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class TimeCategory : BaseWithOwner
-{
- public TimeCategory() { }
- public TimeCategory(Guid userId) : base(userId) { }
- public string Name { get; set; }
- public string Color { get; set; }
- public TimeCategoryDto AsDto => new(this);
-
- public class TimeCategoryDto
- {
- public TimeCategoryDto() { }
-
- public TimeCategoryDto(TimeCategory sourceEntry = default) {
- if (sourceEntry == default) {
- return;
- }
-
- Id = sourceEntry.Id;
- ModifiedAt = sourceEntry.ModifiedAt;
- Name = sourceEntry.Name;
- Color = sourceEntry.Color;
- }
-
- public Guid Id { get; set; }
- public DateTime? ModifiedAt { get; set; }
- public string Name { get; set; }
- public string Color { get; set; }
- }
-}
diff --git a/server/src/Data/Database/TimeEntry.cs b/server/src/Data/Database/TimeEntry.cs
deleted file mode 100644
index 46c62e1..0000000
--- a/server/src/Data/Database/TimeEntry.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class TimeEntry : BaseWithOwner
-{
- public TimeEntry() { }
- public TimeEntry(Guid userId) : base(userId) { }
- public DateTime Start { get; set; }
- public DateTime Stop { get; set; }
- public string Description { get; set; }
- public ICollection<TimeLabel> Labels { get; set; }
- public TimeCategory Category { get; set; }
- public TimeEntryDto AsDto => new(this);
-
- public class TimeEntryDto
- {
- public TimeEntryDto() { }
-
- public TimeEntryDto(TimeEntry sourceEntry = default) {
- if (sourceEntry == default) {
- return;
- }
-
- Id = sourceEntry.Id;
- ModifiedAt = sourceEntry.ModifiedAt;
- Stop = sourceEntry.Stop;
- Start = sourceEntry.Start;
- Description = sourceEntry.Description;
- if (sourceEntry.Labels != default) {
- Labels = sourceEntry.Labels
- .Select(t => t.AsDto)
- .ToList();
- }
-
- Category = sourceEntry.Category.AsDto;
- }
-
- public Guid? Id { get; set; }
- public DateTime? ModifiedAt { get; set; }
- public DateTime Start { get; set; }
- public DateTime Stop { get; set; }
- public string Description { get; set; }
- public List<TimeLabel.TimeLabelDto> Labels { get; set; }
- public TimeCategory.TimeCategoryDto Category { get; set; }
- }
-}
diff --git a/server/src/Data/Database/TimeLabel.cs b/server/src/Data/Database/TimeLabel.cs
deleted file mode 100644
index 55e20b0..0000000
--- a/server/src/Data/Database/TimeLabel.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class TimeLabel : BaseWithOwner
-{
- public TimeLabel() { }
- public TimeLabel(Guid userId) : base(userId) { }
- public string Name { get; set; }
- public string Color { get; set; }
-
- [NotMapped]
- public TimeLabelDto AsDto => new(this);
-
- public class TimeLabelDto
- {
- public TimeLabelDto() { }
-
- public TimeLabelDto(TimeLabel sourceEntry) {
- Id = sourceEntry.Id;
- CreatedAt = sourceEntry.CreatedAt;
- ModifiedAt = sourceEntry.ModifiedAt;
- Name = sourceEntry.Name;
- Color = sourceEntry.Color;
- }
-
- public Guid Id { get; set; }
- public DateTime CreatedAt { get; set; }
- public DateTime? ModifiedAt { get; set; }
- public string Name { get; set; }
- public string Color { get; set; }
- }
-}
diff --git a/server/src/Data/Database/Todo.cs b/server/src/Data/Database/Todo.cs
deleted file mode 100644
index 5fe3c9a..0000000
--- a/server/src/Data/Database/Todo.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-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/server/src/Data/Database/TodoComment.cs b/server/src/Data/Database/TodoComment.cs
deleted file mode 100644
index 44dcbed..0000000
--- a/server/src/Data/Database/TodoComment.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class TodoComment : BaseWithOwner
-{
- public string Value { get; set; }
- public Todo Todo { get; set; }
-}
diff --git a/server/src/Data/Database/TodoLabel.cs b/server/src/Data/Database/TodoLabel.cs
deleted file mode 100644
index 7753ade..0000000
--- a/server/src/Data/Database/TodoLabel.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-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/server/src/Data/Database/TodoProject.cs b/server/src/Data/Database/TodoProject.cs
deleted file mode 100644
index 0a4a7be..0000000
--- a/server/src/Data/Database/TodoProject.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-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; }
-}
-
-public enum TodoVisibility
-{
- PRIVATE = 0,
- UNLISTED = 1,
- TENANT_WIDE = 2,
- PUBLIC = 3,
-}
diff --git a/server/src/Data/Database/TodoProjectAccessControl.cs b/server/src/Data/Database/TodoProjectAccessControl.cs
deleted file mode 100644
index 964f831..0000000
--- a/server/src/Data/Database/TodoProjectAccessControl.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-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/server/src/Data/Database/TodoStatus.cs b/server/src/Data/Database/TodoStatus.cs
deleted file mode 100644
index 416212d..0000000
--- a/server/src/Data/Database/TodoStatus.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-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",
- TenantId = tenantId
- },
- new() {
- Name = "Resolved",
- TenantId = tenantId
- },
- new() {
- Name = "Fixed",
- TenantId = tenantId
- },
- new() {
- Name = "Implemented",
- TenantId = tenantId
- },
- new() {
- Name = "Won't fix",
- TenantId = tenantId
- },
- new() {
- Name = "By design",
- TenantId = tenantId
- },
- new() {
- Name = "Invalid",
- TenantId = tenantId
- },
- new() {
- Name = "Duplicate",
- TenantId = tenantId
- }
- };
- }
-}
diff --git a/server/src/Data/Database/User.cs b/server/src/Data/Database/User.cs
deleted file mode 100644
index 9db5d35..0000000
--- a/server/src/Data/Database/User.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class User : Base
-{
- public User() { }
-
- public User(string username) {
- Username = username;
- }
-
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public string Email { get; set; }
- public string Username { get; set; }
- public string Password { get; set; }
- public ICollection<Tenant> Tenants { get; set; }
-
- public string DisplayName() {
- if (FirstName.HasValue() && LastName.HasValue()) return FirstName + " " + LastName;
- return FirstName.HasValue() ? FirstName : Email;
- }
-
- public void HashAndSetPassword(string password) {
- Password = PasswordHelper.HashPassword(password);
- }
-
- public bool VerifyPassword(string password) {
- return PasswordHelper.Verify(password, Password);
- }
-
- public IEnumerable<Claim> DefaultClaims() {
- return new Claim[] {
- new(AppClaims.USER_ID, Id.ToString()),
- new(AppClaims.NAME, Username),
- };
- }
-} \ No newline at end of file