aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Data/Database
diff options
context:
space:
mode:
Diffstat (limited to 'code/api/src/Data/Database')
-rw-r--r--code/api/src/Data/Database/Api/ApiAccessToken.cs (renamed from code/api/src/Data/Database/ApiAccessToken.cs)0
-rw-r--r--code/api/src/Data/Database/Base.cs11
-rw-r--r--code/api/src/Data/Database/BaseWithOwner.cs31
-rw-r--r--code/api/src/Data/Database/Customer.cs6
-rw-r--r--code/api/src/Data/Database/Customer/Customer.cs29
-rw-r--r--code/api/src/Data/Database/Customer/CustomerContact.cs (renamed from code/api/src/Data/Database/CustomerContact.cs)0
-rw-r--r--code/api/src/Data/Database/Customer/CustomerEvent.cs (renamed from code/api/src/Data/Database/CustomerEvent.cs)3
-rw-r--r--code/api/src/Data/Database/Customer/CustomerGroup.cs7
-rw-r--r--code/api/src/Data/Database/Customer/CustomerGroupMembership.cs7
-rw-r--r--code/api/src/Data/Database/Internal/ForgotPasswordRequest.cs (renamed from code/api/src/Data/Database/ForgotPasswordRequest.cs)0
-rw-r--r--code/api/src/Data/Database/Internal/Tenant.cs (renamed from code/api/src/Data/Database/Tenant.cs)0
-rw-r--r--code/api/src/Data/Database/Internal/User.cs (renamed from code/api/src/Data/Database/User.cs)0
-rw-r--r--code/api/src/Data/Database/MainAppDatabase.cs85
-rw-r--r--code/api/src/Data/Database/Project.cs12
-rw-r--r--code/api/src/Data/Database/Project/Project.cs15
-rw-r--r--code/api/src/Data/Database/Project/ProjectLabel.cs (renamed from code/api/src/Data/Database/ProjectLabel.cs)4
-rw-r--r--code/api/src/Data/Database/Project/ProjectMember.cs8
-rw-r--r--code/api/src/Data/Database/Time/TimeCategory.cs32
-rw-r--r--code/api/src/Data/Database/Time/TimeEntry.cs46
-rw-r--r--code/api/src/Data/Database/Time/TimeLabel.cs32
-rw-r--r--code/api/src/Data/Database/TimeCategory.cs31
-rw-r--r--code/api/src/Data/Database/TimeEntry.cs45
-rw-r--r--code/api/src/Data/Database/TimeLabel.cs31
-rw-r--r--code/api/src/Data/Database/Todo/Todo.cs (renamed from code/api/src/Data/Database/Todo.cs)0
-rw-r--r--code/api/src/Data/Database/Todo/TodoComment.cs (renamed from code/api/src/Data/Database/TodoComment.cs)0
-rw-r--r--code/api/src/Data/Database/Todo/TodoLabel.cs (renamed from code/api/src/Data/Database/TodoLabel.cs)0
-rw-r--r--code/api/src/Data/Database/Todo/TodoProject.cs (renamed from code/api/src/Data/Database/TodoProject.cs)0
-rw-r--r--code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs (renamed from code/api/src/Data/Database/TodoProjectAccessControl.cs)0
-rw-r--r--code/api/src/Data/Database/Todo/TodoStatus.cs (renamed from code/api/src/Data/Database/TodoStatus.cs)8
29 files changed, 297 insertions, 146 deletions
diff --git a/code/api/src/Data/Database/ApiAccessToken.cs b/code/api/src/Data/Database/Api/ApiAccessToken.cs
index 9582869..9582869 100644
--- a/code/api/src/Data/Database/ApiAccessToken.cs
+++ b/code/api/src/Data/Database/Api/ApiAccessToken.cs
diff --git a/code/api/src/Data/Database/Base.cs b/code/api/src/Data/Database/Base.cs
index ae9efa2..900b923 100644
--- a/code/api/src/Data/Database/Base.cs
+++ b/code/api/src/Data/Database/Base.cs
@@ -10,6 +10,13 @@ public class Base
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;
+ public DateTime? DeletedAt { get; private set; }
+ public bool Deleted { get; private set; }
+
+ public void SetModified() => ModifiedAt = AppDateTime.UtcNow;
+
+ public void SetDeleted() {
+ Deleted = true;
+ DeletedAt = AppDateTime.UtcNow;
+ }
} \ No newline at end of file
diff --git a/code/api/src/Data/Database/BaseWithOwner.cs b/code/api/src/Data/Database/BaseWithOwner.cs
index 1eb99f4..84b5bfe 100644
--- a/code/api/src/Data/Database/BaseWithOwner.cs
+++ b/code/api/src/Data/Database/BaseWithOwner.cs
@@ -1,19 +1,34 @@
namespace IOL.GreatOffice.Api.Data.Database;
/// <summary>
-/// Base class for all entities.
+/// Base class for all entities with ownership.
/// </summary>
public class BaseWithOwner : Base
{
protected BaseWithOwner() { }
- protected BaseWithOwner(Guid userId) {
- UserId = userId;
+ protected BaseWithOwner(LoggedInUserModel loggedInUser) {
+ CreatedBy = loggedInUser.Id;
}
- 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; }
+ public Guid? UserId { get; private set; }
+ public Guid? TenantId { get; private set; }
+ public Guid? ModifiedBy { get; private set; }
+ public Guid? CreatedBy { get; private set; }
+ public Guid? DeletedBy { get; private set; }
+
+ public void SetDeleted(Guid userId) {
+ DeletedBy = userId;
+ SetDeleted();
+ }
+
+ public void SetModified(Guid userId) {
+ ModifiedBy = userId;
+ SetModified();
+ }
+
+ public void SetOwnerIds(Guid userId = default, Guid tenantId = default) {
+ if (tenantId != default) TenantId = tenantId;
+ if (userId != default) UserId = userId;
+ }
} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Customer.cs b/code/api/src/Data/Database/Customer.cs
deleted file mode 100644
index c6b06a4..0000000
--- a/code/api/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/code/api/src/Data/Database/Customer/Customer.cs b/code/api/src/Data/Database/Customer/Customer.cs
new file mode 100644
index 0000000..f9953da
--- /dev/null
+++ b/code/api/src/Data/Database/Customer/Customer.cs
@@ -0,0 +1,29 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class Customer : BaseWithOwner
+{
+ public Customer() { }
+ public Customer(LoggedInUserModel loggedInUserModel) : base(loggedInUserModel) { }
+
+ public string CustomerNumber { get; set; }
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public string Address1 { get; set; }
+ public string Address2 { get; set; }
+ public string PostalCode { get; set; }
+ public string PostalCity { get; set; }
+ public string Country { get; set; }
+ public string Phone { get; set; }
+ public string Email { get; set; }
+ public string VATNumber { get; set; }
+ public string ORGNumber { get; set; }
+ public string DefaultReference { get; set; }
+ public string Website { get; set; }
+ public string Currency { get; set; }
+
+ public User Owner { get; set; }
+ public ICollection<CustomerGroup> Groups { get; set; }
+ public ICollection<CustomerContact> Contacts { get; set; }
+ public ICollection<CustomerEvent> Events { get; set; }
+ public ICollection<Project> Projects { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/CustomerContact.cs b/code/api/src/Data/Database/Customer/CustomerContact.cs
index f5a951d..f5a951d 100644
--- a/code/api/src/Data/Database/CustomerContact.cs
+++ b/code/api/src/Data/Database/Customer/CustomerContact.cs
diff --git a/code/api/src/Data/Database/CustomerEvent.cs b/code/api/src/Data/Database/Customer/CustomerEvent.cs
index da3e3ed..a87da4c 100644
--- a/code/api/src/Data/Database/CustomerEvent.cs
+++ b/code/api/src/Data/Database/Customer/CustomerEvent.cs
@@ -3,5 +3,6 @@ namespace IOL.GreatOffice.Api.Data.Database;
public class CustomerEvent : BaseWithOwner
{
public Customer Customer { get; set; }
- public string Name { get; set; }
+ public string Title { get; set; }
+ public string Note { get; set; }
}
diff --git a/code/api/src/Data/Database/Customer/CustomerGroup.cs b/code/api/src/Data/Database/Customer/CustomerGroup.cs
new file mode 100644
index 0000000..9438f3c
--- /dev/null
+++ b/code/api/src/Data/Database/Customer/CustomerGroup.cs
@@ -0,0 +1,7 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class CustomerGroup : BaseWithOwner
+{
+ public string Name { get; set; }
+ public ICollection<Customer> Customers { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Customer/CustomerGroupMembership.cs b/code/api/src/Data/Database/Customer/CustomerGroupMembership.cs
new file mode 100644
index 0000000..ec0d4af
--- /dev/null
+++ b/code/api/src/Data/Database/Customer/CustomerGroupMembership.cs
@@ -0,0 +1,7 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class CustomerGroupMembership : Base
+{
+ public Customer Customer { get; set; }
+ public CustomerGroup Group { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/ForgotPasswordRequest.cs b/code/api/src/Data/Database/Internal/ForgotPasswordRequest.cs
index 1510a35..1510a35 100644
--- a/code/api/src/Data/Database/ForgotPasswordRequest.cs
+++ b/code/api/src/Data/Database/Internal/ForgotPasswordRequest.cs
diff --git a/code/api/src/Data/Database/Tenant.cs b/code/api/src/Data/Database/Internal/Tenant.cs
index b185c7a..b185c7a 100644
--- a/code/api/src/Data/Database/Tenant.cs
+++ b/code/api/src/Data/Database/Internal/Tenant.cs
diff --git a/code/api/src/Data/Database/User.cs b/code/api/src/Data/Database/Internal/User.cs
index 9db5d35..9db5d35 100644
--- a/code/api/src/Data/Database/User.cs
+++ b/code/api/src/Data/Database/Internal/User.cs
diff --git a/code/api/src/Data/Database/MainAppDatabase.cs b/code/api/src/Data/Database/MainAppDatabase.cs
new file mode 100644
index 0000000..b529791
--- /dev/null
+++ b/code/api/src/Data/Database/MainAppDatabase.cs
@@ -0,0 +1,85 @@
+using IOL.GreatOffice.Api.Endpoints.V1.Projects;
+using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
+
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class MainAppDatabase : DbContext, IDataProtectionKeyContext
+{
+ public MainAppDatabase(DbContextOptions<MainAppDatabase> options) : base(options) { }
+ public DbSet<User> Users { get; set; }
+ public DbSet<ForgotPasswordRequest> ForgotPasswordRequests { get; set; }
+ public DbSet<TimeLabel> TimeLabels { get; set; }
+ public DbSet<TimeEntry> TimeEntries { get; set; }
+ public DbSet<TimeCategory> TimeCategories { get; set; }
+ public DbSet<ApiAccessToken> AccessTokens { get; set; }
+ public DbSet<Tenant> Tenants { get; set; }
+ public DbSet<DataProtectionKey> DataProtectionKeys { get; set; }
+ public DbSet<Project> Projects { get; set; }
+ public DbSet<ProjectLabel> ProjectLabels { get; set; }
+ public DbSet<Customer> Customers { get; set; }
+ public DbSet<CustomerContact> CustomersContacts { get; set; }
+ public DbSet<CustomerEvent> CustomerEvents { get; set; }
+ public DbSet<CustomerGroup> CustomerGroups { get; set; }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder) {
+ modelBuilder.Entity<User>(e => {
+ e.HasMany(n => n.Tenants);
+ e.ToTable("users");
+ });
+ modelBuilder.Entity<ForgotPasswordRequest>(e => {
+ e.HasOne(c => c.User);
+ e.ToTable("forgot_password_requests");
+ });
+ modelBuilder.Entity<TimeCategory>(e => { e.ToTable("time_categories"); });
+ modelBuilder.Entity<TimeLabel>(e => { e.ToTable("time_labels"); });
+ modelBuilder.Entity<TimeEntry>(e => {
+ e.HasOne(c => c.Category);
+ e.HasMany(c => c.Labels);
+ e.ToTable("time_entries");
+ });
+ modelBuilder.Entity<ApiAccessToken>(e => {
+ e.HasOne(n => n.User);
+ e.ToTable("api_access_tokens");
+ });
+ modelBuilder.Entity<Tenant>(e => {
+ e.HasMany(n => n.Users);
+ e.ToTable("tenants");
+ });
+ modelBuilder.Entity<Project>(e => {
+ e.HasMany(n => n.Members);
+ e.HasMany(n => n.Customers);
+ e.ToTable("projects");
+ });
+ modelBuilder.Entity<ProjectMember>(e => {
+ e.HasOne(n => n.Project);
+ e.HasOne(n => n.User);
+ e.ToTable("project_members");
+ });
+ modelBuilder.Entity<ProjectLabel>(e => {
+ e.HasOne(n => n.Project);
+ e.ToTable("project_labels");
+ });
+ modelBuilder.Entity<Customer>(e => {
+ e.HasOne(n => n.Owner);
+ e.HasMany(n => n.Events);
+ e.HasMany(n => n.Contacts);
+ e.HasMany(n => n.Groups);
+ e.HasMany(n => n.Projects);
+ e.ToTable("customers");
+ });
+ modelBuilder.Entity<CustomerContact>(e => {
+ e.HasOne(n => n.Customer);
+ e.ToTable("customer_contacts");
+ });
+ modelBuilder.Entity<CustomerEvent>(e => {
+ e.HasOne(n => n.Customer);
+ e.ToTable("customer_events");
+ });
+ modelBuilder.Entity<CustomerGroup>(e => {
+ e.HasMany(n => n.Customers);
+ e.ToTable("customer_groups");
+ });
+
+ base.OnModelCreating(modelBuilder);
+ }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Project.cs b/code/api/src/Data/Database/Project.cs
deleted file mode 100644
index 99c6e7f..0000000
--- a/code/api/src/Data/Database/Project.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace IOL.GreatOffice.Api.Data.Database;
-
-public class Project : BaseWithOwner
-{
- public string Name { get; set; }
- public string Description { get; set; }
- public DateTime? Start { get; set; }
- public DateTime? Stop { get; set; }
- public List<Customer> Customers { get; set; }
- public List<User> Owners { get; set; }
- public List<ProjectLabel> Labels { get; set; }
-}
diff --git a/code/api/src/Data/Database/Project/Project.cs b/code/api/src/Data/Database/Project/Project.cs
new file mode 100644
index 0000000..de9e2cb
--- /dev/null
+++ b/code/api/src/Data/Database/Project/Project.cs
@@ -0,0 +1,15 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class Project : BaseWithOwner
+{
+ public Project() { }
+
+ public Project(LoggedInUserModel loggedInUserModel) : base(loggedInUserModel) { }
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public DateTime? Start { get; set; }
+ public DateTime? Stop { get; set; }
+ public ICollection<Customer> Customers { get; set; }
+ public ICollection<ProjectMember> Members { get; set; }
+ public ICollection<ProjectLabel> Labels { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/ProjectLabel.cs b/code/api/src/Data/Database/Project/ProjectLabel.cs
index 8fb18c2..0e1dc5d 100644
--- a/code/api/src/Data/Database/ProjectLabel.cs
+++ b/code/api/src/Data/Database/Project/ProjectLabel.cs
@@ -2,7 +2,7 @@ namespace IOL.GreatOffice.Api.Data.Database;
public class ProjectLabel : BaseWithOwner
{
- public string Name { get; set; }
+ public string Value { get; set; }
public string Color { get; set; }
- public Project Todo { get; set; }
+ public Project Project { get; set; }
}
diff --git a/code/api/src/Data/Database/Project/ProjectMember.cs b/code/api/src/Data/Database/Project/ProjectMember.cs
new file mode 100644
index 0000000..a5e0682
--- /dev/null
+++ b/code/api/src/Data/Database/Project/ProjectMember.cs
@@ -0,0 +1,8 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class ProjectMember : Base
+{
+ public Project Project { get; set; }
+ public User User { get; set; }
+ public ProjectRole Role { get; set; }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Time/TimeCategory.cs b/code/api/src/Data/Database/Time/TimeCategory.cs
new file mode 100644
index 0000000..c3f013d
--- /dev/null
+++ b/code/api/src/Data/Database/Time/TimeCategory.cs
@@ -0,0 +1,32 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TimeCategory : BaseWithOwner
+{
+ public TimeCategory() { }
+
+ public TimeCategory(LoggedInUserModel loggedInUserModel) : base(loggedInUserModel) { }
+ 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; }
+ }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Time/TimeEntry.cs b/code/api/src/Data/Database/Time/TimeEntry.cs
new file mode 100644
index 0000000..0405df2
--- /dev/null
+++ b/code/api/src/Data/Database/Time/TimeEntry.cs
@@ -0,0 +1,46 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TimeEntry : BaseWithOwner
+{
+ public TimeEntry() { }
+
+ public TimeEntry(LoggedInUserModel loggedInUserModel) : base(loggedInUserModel) { }
+ 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; }
+ }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/Time/TimeLabel.cs b/code/api/src/Data/Database/Time/TimeLabel.cs
new file mode 100644
index 0000000..365161c
--- /dev/null
+++ b/code/api/src/Data/Database/Time/TimeLabel.cs
@@ -0,0 +1,32 @@
+namespace IOL.GreatOffice.Api.Data.Database;
+
+public class TimeLabel : BaseWithOwner
+{
+ public TimeLabel() { }
+
+ public TimeLabel(LoggedInUserModel loggedInUserModel) : base(loggedInUserModel) { }
+ 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; }
+ }
+} \ No newline at end of file
diff --git a/code/api/src/Data/Database/TimeCategory.cs b/code/api/src/Data/Database/TimeCategory.cs
deleted file mode 100644
index 69c6957..0000000
--- a/code/api/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/code/api/src/Data/Database/TimeEntry.cs b/code/api/src/Data/Database/TimeEntry.cs
deleted file mode 100644
index 46c62e1..0000000
--- a/code/api/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/code/api/src/Data/Database/TimeLabel.cs b/code/api/src/Data/Database/TimeLabel.cs
deleted file mode 100644
index 55e20b0..0000000
--- a/code/api/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/code/api/src/Data/Database/Todo.cs b/code/api/src/Data/Database/Todo/Todo.cs
index 5fe3c9a..5fe3c9a 100644
--- a/code/api/src/Data/Database/Todo.cs
+++ b/code/api/src/Data/Database/Todo/Todo.cs
diff --git a/code/api/src/Data/Database/TodoComment.cs b/code/api/src/Data/Database/Todo/TodoComment.cs
index 44dcbed..44dcbed 100644
--- a/code/api/src/Data/Database/TodoComment.cs
+++ b/code/api/src/Data/Database/Todo/TodoComment.cs
diff --git a/code/api/src/Data/Database/TodoLabel.cs b/code/api/src/Data/Database/Todo/TodoLabel.cs
index 7753ade..7753ade 100644
--- a/code/api/src/Data/Database/TodoLabel.cs
+++ b/code/api/src/Data/Database/Todo/TodoLabel.cs
diff --git a/code/api/src/Data/Database/TodoProject.cs b/code/api/src/Data/Database/Todo/TodoProject.cs
index 5e22bbe..5e22bbe 100644
--- a/code/api/src/Data/Database/TodoProject.cs
+++ b/code/api/src/Data/Database/Todo/TodoProject.cs
diff --git a/code/api/src/Data/Database/TodoProjectAccessControl.cs b/code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs
index 964f831..964f831 100644
--- a/code/api/src/Data/Database/TodoProjectAccessControl.cs
+++ b/code/api/src/Data/Database/Todo/TodoProjectAccessControl.cs
diff --git a/code/api/src/Data/Database/TodoStatus.cs b/code/api/src/Data/Database/Todo/TodoStatus.cs
index 416212d..9ace7d0 100644
--- a/code/api/src/Data/Database/TodoStatus.cs
+++ b/code/api/src/Data/Database/Todo/TodoStatus.cs
@@ -10,35 +10,27 @@ public class TodoStatus : BaseWithOwner
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
}
};
}