aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Models/Database
diff options
context:
space:
mode:
authorivar <i@oiee.no>2023-10-08 01:22:29 +0200
committerivar <i@oiee.no>2023-10-08 01:22:29 +0200
commit0fa8060856fde1ac887d1fefe3940ac494d236cb (patch)
treea25262a14538b58d431afd21a2d47a4abed326ee /code/api/src/Models/Database
parentcf546fd4b9a1fbf77bccf5f0b713e688d29a66ad (diff)
downloadgreatoffice-0fa8060856fde1ac887d1fefe3940ac494d236cb.tar.xz
greatoffice-0fa8060856fde1ac887d1fefe3940ac494d236cb.zip
.
Diffstat (limited to 'code/api/src/Models/Database')
-rw-r--r--code/api/src/Models/Database/BaseWithOwner.cs54
-rw-r--r--code/api/src/Models/Database/MainAppDatabase.cs202
2 files changed, 129 insertions, 127 deletions
diff --git a/code/api/src/Models/Database/BaseWithOwner.cs b/code/api/src/Models/Database/BaseWithOwner.cs
index 7e9f6c1..ebb331a 100644
--- a/code/api/src/Models/Database/BaseWithOwner.cs
+++ b/code/api/src/Models/Database/BaseWithOwner.cs
@@ -5,36 +5,36 @@ namespace IOL.GreatOffice.Api.Data.Database;
/// </summary>
public abstract class BaseWithOwner : Base
{
- protected BaseWithOwner() { }
+ protected BaseWithOwner() { }
- protected BaseWithOwner(Guid createdBy) {
- CreatedBy = createdBy;
- }
+ protected BaseWithOwner(Guid createdBy) {
+ CreatedBy = createdBy;
+ }
- protected BaseWithOwner(LoggedInUserModel loggedInUser) {
- CreatedBy = loggedInUser.Id;
- }
+ protected BaseWithOwner(LoggedInUserModel loggedInUser) {
+ CreatedBy = loggedInUser.Id;
+ }
- 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 User OwningUser { get; set; }
- public Tenant OwningTenant { get; set; }
+ 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 User OwningUser { get; set; }
+ public Tenant OwningTenant { get; set; }
- public void SetDeleted(Guid userId) {
- DeletedBy = userId;
- base.SetDeleted();
- }
+ public void SetDeleted(Guid userId) {
+ DeletedBy = userId;
+ base.SetDeleted();
+ }
- public void SetModified(Guid userId) {
- ModifiedBy = userId;
- base.SetModified();
- }
+ public void SetModified(Guid userId) {
+ ModifiedBy = userId;
+ base.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
+ public void SetOwnerIds(Guid userId = default, Guid tenantId = default) {
+ if (tenantId != default) TenantId = tenantId;
+ if (userId != default) UserId = userId;
+ }
+}
diff --git a/code/api/src/Models/Database/MainAppDatabase.cs b/code/api/src/Models/Database/MainAppDatabase.cs
index 2b42fe0..cba7269 100644
--- a/code/api/src/Models/Database/MainAppDatabase.cs
+++ b/code/api/src/Models/Database/MainAppDatabase.cs
@@ -1,107 +1,109 @@
using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
-namespace IOL.GreatOffice.Api.Data.Database;
+namespace IOL.GreatOffice.Api.Models.Database;
public class MainAppDatabase : DbContext, IDataProtectionKeyContext
{
- public MainAppDatabase(DbContextOptions<MainAppDatabase> options) : base(options) { }
- public DbSet<User> Users { get; set; }
- public DbSet<PasswordResetRequest> PasswordResetRequests { 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; }
- public DbSet<TodoLabel> TodoLabels { get; set; }
- public DbSet<TodoCollectionAccessControl> TodoProjectAccessControls { get; set; }
- public DbSet<TodoCollection> TodoProjects { get; set; }
- public DbSet<TodoComment> TodoComments { get; set; }
- public DbSet<Todo> Todos { get; set; }
- public DbSet<ValidationEmail> ValidationEmails { get; set; }
+ public MainAppDatabase(DbContextOptions<MainAppDatabase> options) : base(options) { }
+ public DbSet<User> Users { get; set; }
+ public DbSet<PasswordResetRequest> PasswordResetRequests { 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; }
+ public DbSet<TodoLabel> TodoLabels { get; set; }
+ public DbSet<TodoCollectionAccessControl> TodoProjectAccessControls { get; set; }
+ public DbSet<TodoCollection> TodoProjects { get; set; }
+ public DbSet<TodoComment> TodoComments { get; set; }
+ public DbSet<Todo> Todos { get; set; }
+ public DbSet<ValidationEmail> ValidationEmails { get; set; }
- protected override void OnModelCreating(ModelBuilder modelBuilder) {
- modelBuilder.Entity<User>(e => {
- e.HasMany(n => n.Tenants);
- e.ToTable("users");
- });
- modelBuilder.Entity<PasswordResetRequest>(e => {
- e.HasOne(c => c.User);
- e.ToTable("password_reset_requests");
- });
- 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");
- });
- modelBuilder.Entity<Todo>(e => {
- e.HasOne(n => n.Collection);
- e.HasOne(n => n.AssignedTo);
- e.HasOne(n => n.ClosedBy);
- e.HasMany(n => n.Labels);
- e.HasMany(n => n.Comments);
- e.ToTable("todos");
- });
- modelBuilder.Entity<TodoCollection>(e => {
- e.HasOne(n => n.Project);
- e.HasMany(n => n.AccessControls);
- e.ToTable("todo_collections");
- });
- modelBuilder.Entity<TodoComment>(e => {
- e.HasOne(n => n.Todo);
- e.ToTable("todo_comments");
- });
- modelBuilder.Entity<TodoLabel>(e => {
- e.HasOne(n => n.Todo);
- e.ToTable("todo_labels");
- });
- modelBuilder.Entity<TodoCollectionAccessControl>(e => {
- e.HasOne(n => n.User);
- e.HasOne(n => n.Collection);
- e.ToTable("todo_collection_access_controls");
- });
- modelBuilder.Entity<ValidationEmail>(e => { e.ToTable("validation_emails"); });
+ protected override void OnModelCreating(ModelBuilder modelBuilder) {
+ modelBuilder.Entity<User>(e => {
+ e.HasMany(n => n.Tenants);
+ e.ToTable("users");
+ });
+ modelBuilder.Entity<PasswordResetRequest>(e => {
+ e.HasOne(c => c.User);
+ e.ToTable("password_reset_requests");
+ });
+ 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");
+ });
+ modelBuilder.Entity<Todo>(e => {
+ e.HasOne(n => n.Collection);
+ e.HasOne(n => n.AssignedTo);
+ e.HasOne(n => n.ClosedBy);
+ e.HasMany(n => n.Labels);
+ e.HasMany(n => n.Comments);
+ e.ToTable("todos");
+ });
+ modelBuilder.Entity<TodoCollection>(e => {
+ e.HasOne(n => n.Project);
+ e.HasMany(n => n.AccessControls);
+ e.ToTable("todo_collections");
+ });
+ modelBuilder.Entity<TodoComment>(e => {
+ e.HasOne(n => n.Todo);
+ e.ToTable("todo_comments");
+ });
+ modelBuilder.Entity<TodoLabel>(e => {
+ e.HasOne(n => n.Todo);
+ e.ToTable("todo_labels");
+ });
+ modelBuilder.Entity<TodoCollectionAccessControl>(e => {
+ e.HasOne(n => n.User);
+ e.HasOne(n => n.Collection);
+ e.ToTable("todo_collection_access_controls");
+ });
+ modelBuilder.Entity<ValidationEmail>(e => {
+ e.ToTable("validation_emails");
+ });
- base.OnModelCreating(modelBuilder);
- }
-} \ No newline at end of file
+ base.OnModelCreating(modelBuilder);
+ }
+}