diff options
Diffstat (limited to 'code/api/src/Data')
34 files changed, 311 insertions, 208 deletions
diff --git a/code/api/src/Data/AppDbContext.cs b/code/api/src/Data/AppDbContext.cs deleted file mode 100644 index c970429..0000000 --- a/code/api/src/Data/AppDbContext.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore; - -namespace IOL.GreatOffice.Api.Data; - -public class AppDbContext : DbContext, IDataProtectionKeyContext -{ - public AppDbContext(DbContextOptions<AppDbContext> 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; } - - protected override void OnModelCreating(ModelBuilder modelBuilder) { - modelBuilder.Entity<User>(e => { - 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.ToTable("api_access_tokens"); - }); - - modelBuilder.Entity<Tenant>(e => { - e.ToTable("tenants"); - }); - - base.OnModelCreating(modelBuilder); - } -} 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 } }; } diff --git a/code/api/src/Data/Enums/ProjectRole.cs b/code/api/src/Data/Enums/ProjectRole.cs new file mode 100644 index 0000000..c4a3f29 --- /dev/null +++ b/code/api/src/Data/Enums/ProjectRole.cs @@ -0,0 +1,9 @@ +namespace IOL.GreatOffice.Api.Data.Enums; + +public enum ProjectRole +{ + EXTERNAL, + RESOURCE, + LEADER, + OWNER +}
\ No newline at end of file diff --git a/code/api/src/Data/Enums/StringsLang.cs b/code/api/src/Data/Enums/StringsLang.cs deleted file mode 100644 index e4e2066..0000000 --- a/code/api/src/Data/Enums/StringsLang.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace IOL.GreatOffice.Api.Data.Enums; - -public enum StringsLang -{ - ENGLISH_GB = 0, - NORWEGIAN_NB = 1 -}
\ No newline at end of file diff --git a/code/api/src/Data/Static/AppConfiguration.cs b/code/api/src/Data/Models/AppConfiguration.cs index 4ee7a8e..f4346bb 100644 --- a/code/api/src/Data/Static/AppConfiguration.cs +++ b/code/api/src/Data/Models/AppConfiguration.cs @@ -1,6 +1,6 @@ using System.Security.Cryptography.X509Certificates; -namespace IOL.GreatOffice.Api.Data.Static; +namespace IOL.GreatOffice.Api.Data.Models; public class AppConfiguration { diff --git a/code/api/src/Data/Models/LoggedInUserModel.cs b/code/api/src/Data/Models/LoggedInUserModel.cs index d802b77..541d4a5 100644 --- a/code/api/src/Data/Models/LoggedInUserModel.cs +++ b/code/api/src/Data/Models/LoggedInUserModel.cs @@ -2,6 +2,7 @@ namespace IOL.GreatOffice.Api.Data.Models; public class LoggedInUserModel { - public Guid Id { get; set; } - public string Username { get; set; } -} + public Guid Id { get; set; } + public string Username { get; set; } + public Guid TenantId { get; set; } +}
\ No newline at end of file |
