aboutsummaryrefslogtreecommitdiffstats
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/Account/CreateInitialAccountRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/Account/GetAccountRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/Account/LoginRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs2
-rw-r--r--code/api/src/Endpoints/Internal/Root/GetSessionRoute.cs2
-rw-r--r--code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs1
-rw-r--r--code/api/src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs2
-rw-r--r--code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs2
-rw-r--r--code/api/src/Endpoints/V1/Customers/CreateCustomerRoute.cs2
-rw-r--r--code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs2
-rw-r--r--code/api/src/Endpoints/V1/Projects/GetProjectsRoute.cs1
-rw-r--r--code/api/src/IOL.GreatOffice.Api.csproj20
-rw-r--r--code/api/src/Jobs/AccessTokenCleanupJob.cs2
-rw-r--r--code/api/src/Migrations/20210517202115_InitialMigration.Designer.cs1
-rw-r--r--code/api/src/Migrations/20210522165932_RenameNoteToDescription.Designer.cs1
-rw-r--r--code/api/src/Migrations/20211002113037_V6Migration.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220225143559_GithubUserMappings.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220319135910_RenameCreated.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220319144958_ModifiedAt.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220319203018_UserBase.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220320115601_Update1.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220320132220_UpdatedForgotPasswordRequests.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220529190359_ApiAccessTokens.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220530174741_Tenants.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220530175322_RemoveUnusedNavs.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220602214238_NullableOptionalBaseFields.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220616170311_DataProtectionKeys.Designer.cs1
-rw-r--r--code/api/src/Migrations/20220819203816_RemoveGithubUsers.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221030080515_InitialProjectAndCustomer.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221030081459_DeletedAt.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221030084716_MinorChanges.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221030090557_MoreMinorChanges.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221031165813_TodoAndOwnerNavigations.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221114034213_RemoveTimeTracker.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221114035223_RenameForgotPasswordRequests.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221209041908_TenantSlug.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221209043806_ValidationEmailQueue.Designer.cs1
-rw-r--r--code/api/src/Migrations/20221214143556_AddUserDeletedBy.Designer.cs1
-rw-r--r--code/api/src/Migrations/AppDbContextModelSnapshot.cs1
-rw-r--r--code/api/src/Models/Database/BaseWithOwner.cs54
-rw-r--r--code/api/src/Models/Database/MainAppDatabase.cs202
-rw-r--r--code/api/src/Program.cs1
-rw-r--r--code/api/src/Services/EmailValidationService.cs2
-rw-r--r--code/api/src/Services/PasswordResetService.cs2
-rw-r--r--code/api/src/Services/TenantService.cs2
-rw-r--r--code/api/src/Services/UserService.cs2
-rw-r--r--code/api/src/Utilities/BasicAuthenticationHandler.cs1
-rwxr-xr-xcode/app/bun.lockbbin0 -> 119706 bytes
51 files changed, 202 insertions, 137 deletions
diff --git a/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs
index 443c4a9..230b4c8 100644
--- a/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs
+++ b/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Account;
public class CreateAccountRoute : RouteBaseAsync.WithRequest<CreateAccountRoute.Payload>.WithActionResult
diff --git a/code/api/src/Endpoints/Internal/Account/CreateInitialAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/CreateInitialAccountRoute.cs
index e1d13dd..79449ef 100644
--- a/code/api/src/Endpoints/Internal/Account/CreateInitialAccountRoute.cs
+++ b/code/api/src/Endpoints/Internal/Account/CreateInitialAccountRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Account;
public class CreateInitialAccountRoute : RouteBaseAsync.WithoutRequest.WithActionResult
diff --git a/code/api/src/Endpoints/Internal/Account/GetAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/GetAccountRoute.cs
index 121b40f..cf653e8 100644
--- a/code/api/src/Endpoints/Internal/Account/GetAccountRoute.cs
+++ b/code/api/src/Endpoints/Internal/Account/GetAccountRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Account;
public class GetAccountRoute : RouteBaseAsync.WithoutRequest.WithActionResult<LoggedInUserModel>
diff --git a/code/api/src/Endpoints/Internal/Account/LoginRoute.cs b/code/api/src/Endpoints/Internal/Account/LoginRoute.cs
index 703f324..a6d52c0 100644
--- a/code/api/src/Endpoints/Internal/Account/LoginRoute.cs
+++ b/code/api/src/Endpoints/Internal/Account/LoginRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Account;
public class LoginRoute : RouteBaseAsync.WithRequest<LoginRoute.Payload>.WithActionResult
diff --git a/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs
index 1081240..e314124 100644
--- a/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs
+++ b/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Account;
public class UpdateAccountRoute : RouteBaseAsync.WithRequest<UpdateAccountRoute.Payload>.WithActionResult
diff --git a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs b/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs
index c6ed417..781ba6f 100644
--- a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs
+++ b/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests;
public class CreateResetRequestRoute : RouteBaseAsync.WithRequest<CreateResetRequestRoute.Payload>.WithActionResult
diff --git a/code/api/src/Endpoints/Internal/Root/GetSessionRoute.cs b/code/api/src/Endpoints/Internal/Root/GetSessionRoute.cs
index 82bbb11..048242f 100644
--- a/code/api/src/Endpoints/Internal/Root/GetSessionRoute.cs
+++ b/code/api/src/Endpoints/Internal/Root/GetSessionRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;
public class GetSessionRoute : RouteBaseSync.WithoutRequest.WithActionResult<GetSessionRoute.SessionResponse>
diff --git a/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs b/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
index 163ddb6..6ac356a 100644
--- a/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
+++ b/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
@@ -1,4 +1,5 @@
using System.Text;
+using IOL.GreatOffice.Api.Models.Database;
namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens;
diff --git a/code/api/src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs b/code/api/src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs
index ee19e40..5a55a2a 100644
--- a/code/api/src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs
+++ b/code/api/src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens;
public class DeleteTokenRoute : RouteBaseSync.WithRequest<Guid>.WithActionResult
diff --git a/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs b/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs
index ee46b34..19d6f4d 100644
--- a/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs
+++ b/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens;
public class GetTokensRoute : RouteBaseSync.WithoutRequest.WithResult<ActionResult<List<GetTokensRoute.ResponseModel>>>
diff --git a/code/api/src/Endpoints/V1/Customers/CreateCustomerRoute.cs b/code/api/src/Endpoints/V1/Customers/CreateCustomerRoute.cs
index 03ba334..d02a004 100644
--- a/code/api/src/Endpoints/V1/Customers/CreateCustomerRoute.cs
+++ b/code/api/src/Endpoints/V1/Customers/CreateCustomerRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.V1.Customers;
public class CreateCustomerRoute : RouteBaseAsync.WithRequest<CreateCustomerPayload>.WithActionResult
diff --git a/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs b/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
index bd37faf..bc6247f 100644
--- a/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
+++ b/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Endpoints.V1.Projects;
public class CreateProjectRoute : RouteBaseAsync.WithRequest<CreateProjectPayload>.WithActionResult
diff --git a/code/api/src/Endpoints/V1/Projects/GetProjectsRoute.cs b/code/api/src/Endpoints/V1/Projects/GetProjectsRoute.cs
index 8fe70a6..00604bc 100644
--- a/code/api/src/Endpoints/V1/Projects/GetProjectsRoute.cs
+++ b/code/api/src/Endpoints/V1/Projects/GetProjectsRoute.cs
@@ -1,3 +1,4 @@
+using IOL.GreatOffice.Api.Models.Database;
using MR.AspNetCore.Pagination;
namespace IOL.GreatOffice.Api.Endpoints.V1.Projects;
diff --git a/code/api/src/IOL.GreatOffice.Api.csproj b/code/api/src/IOL.GreatOffice.Api.csproj
index 15e5ebf..e1ea073 100644
--- a/code/api/src/IOL.GreatOffice.Api.csproj
+++ b/code/api/src/IOL.GreatOffice.Api.csproj
@@ -10,21 +10,21 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Duende.IdentityServer" Version="6.2.1" />
- <PackageReference Include="Duende.IdentityServer.EntityFramework.Storage" Version="6.2.1" />
+ <PackageReference Include="Duende.IdentityServer" Version="6.3.5" />
+ <PackageReference Include="Duende.IdentityServer.EntityFramework.Storage" Version="6.3.5" />
<PackageReference Include="EFCore.NamingConventions" Version="7.0.2" />
<PackageReference Include="IOL.Helpers" Version="3.1.0" />
- <PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="7.0.2" />
- <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.0.0" />
- <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.0.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.2">
+ <PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="7.0.11" />
+ <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.1.0" />
+ <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.1.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.11">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="MR.AspNetCore.Pagination" Version="2.0.0" />
- <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.1" />
- <PackageReference Include="Quartz.Extensions.Hosting" Version="3.5.0" />
- <PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
+ <PackageReference Include="MR.AspNetCore.Pagination" Version="2.1.0" />
+ <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.11" />
+ <PackageReference Include="Quartz.Extensions.Hosting" Version="3.7.0" />
+ <PackageReference Include="Serilog.AspNetCore" Version="7.0.0" />
<PackageReference Include="Serilog.Sinks.Seq" Version="5.2.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />
diff --git a/code/api/src/Jobs/AccessTokenCleanupJob.cs b/code/api/src/Jobs/AccessTokenCleanupJob.cs
index 20b450c..9e9a78b 100644
--- a/code/api/src/Jobs/AccessTokenCleanupJob.cs
+++ b/code/api/src/Jobs/AccessTokenCleanupJob.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Jobs;
public class AccessTokenCleanupJob : IJob
diff --git a/code/api/src/Migrations/20210517202115_InitialMigration.Designer.cs b/code/api/src/Migrations/20210517202115_InitialMigration.Designer.cs
index da3c3ec..e474322 100644
--- a/code/api/src/Migrations/20210517202115_InitialMigration.Designer.cs
+++ b/code/api/src/Migrations/20210517202115_InitialMigration.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20210522165932_RenameNoteToDescription.Designer.cs b/code/api/src/Migrations/20210522165932_RenameNoteToDescription.Designer.cs
index 28408c7..d6fb701 100644
--- a/code/api/src/Migrations/20210522165932_RenameNoteToDescription.Designer.cs
+++ b/code/api/src/Migrations/20210522165932_RenameNoteToDescription.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20211002113037_V6Migration.Designer.cs b/code/api/src/Migrations/20211002113037_V6Migration.Designer.cs
index 50f461e..008426f 100644
--- a/code/api/src/Migrations/20211002113037_V6Migration.Designer.cs
+++ b/code/api/src/Migrations/20211002113037_V6Migration.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220225143559_GithubUserMappings.Designer.cs b/code/api/src/Migrations/20220225143559_GithubUserMappings.Designer.cs
index 6c59262..168b330 100644
--- a/code/api/src/Migrations/20220225143559_GithubUserMappings.Designer.cs
+++ b/code/api/src/Migrations/20220225143559_GithubUserMappings.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220319135910_RenameCreated.Designer.cs b/code/api/src/Migrations/20220319135910_RenameCreated.Designer.cs
index 2f96cdc..d4df436 100644
--- a/code/api/src/Migrations/20220319135910_RenameCreated.Designer.cs
+++ b/code/api/src/Migrations/20220319135910_RenameCreated.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220319144958_ModifiedAt.Designer.cs b/code/api/src/Migrations/20220319144958_ModifiedAt.Designer.cs
index 349c4ad..c859201 100644
--- a/code/api/src/Migrations/20220319144958_ModifiedAt.Designer.cs
+++ b/code/api/src/Migrations/20220319144958_ModifiedAt.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220319203018_UserBase.Designer.cs b/code/api/src/Migrations/20220319203018_UserBase.Designer.cs
index c918d3d..96381a3 100644
--- a/code/api/src/Migrations/20220319203018_UserBase.Designer.cs
+++ b/code/api/src/Migrations/20220319203018_UserBase.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220320115601_Update1.Designer.cs b/code/api/src/Migrations/20220320115601_Update1.Designer.cs
index 3b6a63a..3354793 100644
--- a/code/api/src/Migrations/20220320115601_Update1.Designer.cs
+++ b/code/api/src/Migrations/20220320115601_Update1.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220320132220_UpdatedForgotPasswordRequests.Designer.cs b/code/api/src/Migrations/20220320132220_UpdatedForgotPasswordRequests.Designer.cs
index 8dae7c8..4cdefc2 100644
--- a/code/api/src/Migrations/20220320132220_UpdatedForgotPasswordRequests.Designer.cs
+++ b/code/api/src/Migrations/20220320132220_UpdatedForgotPasswordRequests.Designer.cs
@@ -5,6 +5,7 @@
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220529190359_ApiAccessTokens.Designer.cs b/code/api/src/Migrations/20220529190359_ApiAccessTokens.Designer.cs
index 3dc01a7..0e7e117 100644
--- a/code/api/src/Migrations/20220529190359_ApiAccessTokens.Designer.cs
+++ b/code/api/src/Migrations/20220529190359_ApiAccessTokens.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220530174741_Tenants.Designer.cs b/code/api/src/Migrations/20220530174741_Tenants.Designer.cs
index aadbec9..35fb1dc 100644
--- a/code/api/src/Migrations/20220530174741_Tenants.Designer.cs
+++ b/code/api/src/Migrations/20220530174741_Tenants.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220530175322_RemoveUnusedNavs.Designer.cs b/code/api/src/Migrations/20220530175322_RemoveUnusedNavs.Designer.cs
index f87309f..325abca 100644
--- a/code/api/src/Migrations/20220530175322_RemoveUnusedNavs.Designer.cs
+++ b/code/api/src/Migrations/20220530175322_RemoveUnusedNavs.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220602214238_NullableOptionalBaseFields.Designer.cs b/code/api/src/Migrations/20220602214238_NullableOptionalBaseFields.Designer.cs
index ddbe9d2..5784c91 100644
--- a/code/api/src/Migrations/20220602214238_NullableOptionalBaseFields.Designer.cs
+++ b/code/api/src/Migrations/20220602214238_NullableOptionalBaseFields.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs b/code/api/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs
index 5c4d3a3..6a5d755 100644
--- a/code/api/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs
+++ b/code/api/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220616170311_DataProtectionKeys.Designer.cs b/code/api/src/Migrations/20220616170311_DataProtectionKeys.Designer.cs
index b89e68d..087f40b 100644
--- a/code/api/src/Migrations/20220616170311_DataProtectionKeys.Designer.cs
+++ b/code/api/src/Migrations/20220616170311_DataProtectionKeys.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20220819203816_RemoveGithubUsers.Designer.cs b/code/api/src/Migrations/20220819203816_RemoveGithubUsers.Designer.cs
index 0ba742c..ed0bd8f 100644
--- a/code/api/src/Migrations/20220819203816_RemoveGithubUsers.Designer.cs
+++ b/code/api/src/Migrations/20220819203816_RemoveGithubUsers.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221030080515_InitialProjectAndCustomer.Designer.cs b/code/api/src/Migrations/20221030080515_InitialProjectAndCustomer.Designer.cs
index 284ea89..73c31db 100644
--- a/code/api/src/Migrations/20221030080515_InitialProjectAndCustomer.Designer.cs
+++ b/code/api/src/Migrations/20221030080515_InitialProjectAndCustomer.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221030081459_DeletedAt.Designer.cs b/code/api/src/Migrations/20221030081459_DeletedAt.Designer.cs
index 78f9454..6196026 100644
--- a/code/api/src/Migrations/20221030081459_DeletedAt.Designer.cs
+++ b/code/api/src/Migrations/20221030081459_DeletedAt.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221030084716_MinorChanges.Designer.cs b/code/api/src/Migrations/20221030084716_MinorChanges.Designer.cs
index 1527d91..b412de8 100644
--- a/code/api/src/Migrations/20221030084716_MinorChanges.Designer.cs
+++ b/code/api/src/Migrations/20221030084716_MinorChanges.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221030090557_MoreMinorChanges.Designer.cs b/code/api/src/Migrations/20221030090557_MoreMinorChanges.Designer.cs
index ff1dfb2..d24112e 100644
--- a/code/api/src/Migrations/20221030090557_MoreMinorChanges.Designer.cs
+++ b/code/api/src/Migrations/20221030090557_MoreMinorChanges.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221031165813_TodoAndOwnerNavigations.Designer.cs b/code/api/src/Migrations/20221031165813_TodoAndOwnerNavigations.Designer.cs
index 1909d36..ef4e425 100644
--- a/code/api/src/Migrations/20221031165813_TodoAndOwnerNavigations.Designer.cs
+++ b/code/api/src/Migrations/20221031165813_TodoAndOwnerNavigations.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221114034213_RemoveTimeTracker.Designer.cs b/code/api/src/Migrations/20221114034213_RemoveTimeTracker.Designer.cs
index c649575..f1c4571 100644
--- a/code/api/src/Migrations/20221114034213_RemoveTimeTracker.Designer.cs
+++ b/code/api/src/Migrations/20221114034213_RemoveTimeTracker.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221114035223_RenameForgotPasswordRequests.Designer.cs b/code/api/src/Migrations/20221114035223_RenameForgotPasswordRequests.Designer.cs
index feb9805..9132bdb 100644
--- a/code/api/src/Migrations/20221114035223_RenameForgotPasswordRequests.Designer.cs
+++ b/code/api/src/Migrations/20221114035223_RenameForgotPasswordRequests.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221209041908_TenantSlug.Designer.cs b/code/api/src/Migrations/20221209041908_TenantSlug.Designer.cs
index d23568d..29a616d 100644
--- a/code/api/src/Migrations/20221209041908_TenantSlug.Designer.cs
+++ b/code/api/src/Migrations/20221209041908_TenantSlug.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221209043806_ValidationEmailQueue.Designer.cs b/code/api/src/Migrations/20221209043806_ValidationEmailQueue.Designer.cs
index aa2d7f4..f2fff80 100644
--- a/code/api/src/Migrations/20221209043806_ValidationEmailQueue.Designer.cs
+++ b/code/api/src/Migrations/20221209043806_ValidationEmailQueue.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/20221214143556_AddUserDeletedBy.Designer.cs b/code/api/src/Migrations/20221214143556_AddUserDeletedBy.Designer.cs
index de4debc..4e0fe8f 100644
--- a/code/api/src/Migrations/20221214143556_AddUserDeletedBy.Designer.cs
+++ b/code/api/src/Migrations/20221214143556_AddUserDeletedBy.Designer.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
diff --git a/code/api/src/Migrations/AppDbContextModelSnapshot.cs b/code/api/src/Migrations/AppDbContextModelSnapshot.cs
index e0a5cfb..106f6d4 100644
--- a/code/api/src/Migrations/AppDbContextModelSnapshot.cs
+++ b/code/api/src/Migrations/AppDbContextModelSnapshot.cs
@@ -1,6 +1,7 @@
// <auto-generated />
using System;
using IOL.GreatOffice.Api.Data.Database;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
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);
+ }
+}
diff --git a/code/api/src/Program.cs b/code/api/src/Program.cs
index 3da1111..fcb9465 100644
--- a/code/api/src/Program.cs
+++ b/code/api/src/Program.cs
@@ -34,6 +34,7 @@ global using Quartz;
global using IOL.GreatOffice.Api.Resources;
using IOL.GreatOffice.Api.Endpoints.V1;
using IOL.GreatOffice.Api.Jobs;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc.Versioning;
diff --git a/code/api/src/Services/EmailValidationService.cs b/code/api/src/Services/EmailValidationService.cs
index c7be20a..e88dfec 100644
--- a/code/api/src/Services/EmailValidationService.cs
+++ b/code/api/src/Services/EmailValidationService.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Services;
public class EmailValidationService
diff --git a/code/api/src/Services/PasswordResetService.cs b/code/api/src/Services/PasswordResetService.cs
index 4c00b81..a179e10 100644
--- a/code/api/src/Services/PasswordResetService.cs
+++ b/code/api/src/Services/PasswordResetService.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Services;
public class PasswordResetService
diff --git a/code/api/src/Services/TenantService.cs b/code/api/src/Services/TenantService.cs
index 0de6f53..477a865 100644
--- a/code/api/src/Services/TenantService.cs
+++ b/code/api/src/Services/TenantService.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Services;
public class TenantService
diff --git a/code/api/src/Services/UserService.cs b/code/api/src/Services/UserService.cs
index 4df8ded..8e183fe 100644
--- a/code/api/src/Services/UserService.cs
+++ b/code/api/src/Services/UserService.cs
@@ -1,3 +1,5 @@
+using IOL.GreatOffice.Api.Models.Database;
+
namespace IOL.GreatOffice.Api.Services;
public class UserService
diff --git a/code/api/src/Utilities/BasicAuthenticationHandler.cs b/code/api/src/Utilities/BasicAuthenticationHandler.cs
index b0a2d1a..3b92293 100644
--- a/code/api/src/Utilities/BasicAuthenticationHandler.cs
+++ b/code/api/src/Utilities/BasicAuthenticationHandler.cs
@@ -1,6 +1,7 @@
using System.Net.Http.Headers;
using System.Text;
using System.Text.Encodings.Web;
+using IOL.GreatOffice.Api.Models.Database;
using Microsoft.Extensions.Options;
namespace IOL.GreatOffice.Api.Utilities;
diff --git a/code/app/bun.lockb b/code/app/bun.lockb
new file mode 100755
index 0000000..2b9eee0
--- /dev/null
+++ b/code/app/bun.lockb
Binary files differ