diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-10-05 14:45:21 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-10-05 14:45:21 +0200 |
| commit | b7e39b59fd0fc7b5610ebff29035bf622079e0d8 (patch) | |
| tree | 64be84ebbdac9f7ceced983390c53b10d575af5c /server/src/Data/Database | |
| parent | 2001c035fbb417ab0a3d42cfb04d17420bde4086 (diff) | |
| download | greatoffice-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.cs | 31 | ||||
| -rw-r--r-- | server/src/Data/Database/Base.cs | 15 | ||||
| -rw-r--r-- | server/src/Data/Database/BaseWithOwner.cs | 19 | ||||
| -rw-r--r-- | server/src/Data/Database/Customer.cs | 6 | ||||
| -rw-r--r-- | server/src/Data/Database/CustomerContact.cs | 12 | ||||
| -rw-r--r-- | server/src/Data/Database/CustomerEvent.cs | 7 | ||||
| -rw-r--r-- | server/src/Data/Database/ForgotPasswordRequest.cs | 23 | ||||
| -rw-r--r-- | server/src/Data/Database/Project.cs | 7 | ||||
| -rw-r--r-- | server/src/Data/Database/Tenant.cs | 11 | ||||
| -rw-r--r-- | server/src/Data/Database/TimeCategory.cs | 31 | ||||
| -rw-r--r-- | server/src/Data/Database/TimeEntry.cs | 45 | ||||
| -rw-r--r-- | server/src/Data/Database/TimeLabel.cs | 31 | ||||
| -rw-r--r-- | server/src/Data/Database/Todo.cs | 13 | ||||
| -rw-r--r-- | server/src/Data/Database/TodoComment.cs | 7 | ||||
| -rw-r--r-- | server/src/Data/Database/TodoLabel.cs | 8 | ||||
| -rw-r--r-- | server/src/Data/Database/TodoProject.cs | 16 | ||||
| -rw-r--r-- | server/src/Data/Database/TodoProjectAccessControl.cs | 11 | ||||
| -rw-r--r-- | server/src/Data/Database/TodoStatus.cs | 45 | ||||
| -rw-r--r-- | server/src/Data/Database/User.cs | 37 |
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 |
