Skip to content

Commit 5eee24d

Browse files
authored
Merge pull request #27 Phase-1-Security Enhancements
Phase-1-Security Enhancements
2 parents 42282e5 + 27c585e commit 5eee24d

142 files changed

Lines changed: 33425 additions & 515 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@ publish_profile.xml
3232
.venv/
3333

3434
obj/
35+
36+
# VS Code user-specific settings (keep launch.json and tasks.json)
37+
.vscode/settings.json

0-Aquiis.Core/Constants/ApplicationSettings.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@ namespace Aquiis.Core.Constants
33
public class ApplicationSettings
44
{
55
public string AppName { get; set; } = string.Empty;
6+
public string ProductName { get; set; } = string.Empty;
67
public string Version { get; set; } = string.Empty;
78
public string Author { get; set; } = string.Empty;
89
public string Email { get; set; } = string.Empty;
910
public string Repository { get; set; } = string.Empty;
11+
public string DatabaseFileName { get; set; } = string.Empty;
12+
public string PreviousDatabaseFileName { get; set; } = string.Empty;
1013
public bool SoftDeleteEnabled { get; set; }
11-
public string SchemaVersion { get; set; } = "1.0.0";
14+
public string SchemaVersion { get; set; } = string.Empty;
1215
public int MaxOrganizationUsers { get; set; } = 0; // 0 = unlimited (Professional), 3 = SimpleStart limit
16+
public string License { get; set; } = string.Empty;
17+
public string LicenseUrl { get; set; } = string.Empty;
18+
public string HelpUrl { get; set; } = string.Empty;
1319
}
1420

1521
// Property & Tenant Lifecycle Enums

0-Aquiis.Core/Entities/ApplicationScreening.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ namespace Aquiis.Core.Entities
66
{
77
public class ApplicationScreening : BaseModel
88
{
9-
[RequiredGuid]
10-
[Display(Name = "Organization ID")]
11-
public Guid OrganizationId { get; set; } = Guid.Empty;
12-
139
[RequiredGuid]
1410
[Display(Name = "Rental Application")]
1511
public Guid RentalApplicationId { get; set; }

0-Aquiis.Core/Entities/BaseModel.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.ComponentModel.DataAnnotations.Schema;
33
using System.Text.Json.Serialization;
44
using Aquiis.Core.Interfaces;
5+
using Aquiis.Core.Validation;
56

67
namespace Aquiis.Core.Entities
78
{
@@ -12,6 +13,15 @@ public class BaseModel : IAuditable
1213
[DatabaseGenerated(DatabaseGeneratedOption.None)]
1314
public Guid Id { get; set; }
1415

16+
/// <summary>
17+
/// Organization partition key - all entities are scoped to an organization for multi-tenancy.
18+
/// This is the fundamental isolation boundary in the system.
19+
/// </summary>
20+
[RequiredGuid]
21+
[JsonInclude]
22+
[Display(Name = "Organization ID")]
23+
public Guid OrganizationId { get; set; } = Guid.Empty;
24+
1525
[Required]
1626
[JsonInclude]
1727
[DataType(DataType.DateTime)]
@@ -39,5 +49,9 @@ public class BaseModel : IAuditable
3949
[JsonInclude]
4050
[Display(Name = "Is Deleted?")]
4151
public bool IsDeleted { get; set; } = false;
52+
53+
[JsonInclude]
54+
[Display(Name = "Is Sample Data?")]
55+
public bool IsSampleData { get; set; } = false;
4256
}
4357
}

0-Aquiis.Core/Entities/CalendarEvent.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ namespace Aquiis.Core.Entities
1010
/// </summary>
1111
public class CalendarEvent : BaseModel
1212
{
13-
[RequiredGuid]
14-
[Display(Name = "Organization ID")]
15-
public Guid OrganizationId { get; set; } = Guid.Empty;
16-
1713
[Required]
1814
[StringLength(200)]
1915
[Display(Name = "Title")]

0-Aquiis.Core/Entities/CalendarSettings.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ namespace Aquiis.Core.Entities;
55

66
public class CalendarSettings : BaseModel
77
{
8-
[RequiredGuid]
9-
[Display(Name = "Organization ID")]
10-
public Guid OrganizationId { get; set; } = Guid.Empty;
118
public string EntityType { get; set; } = string.Empty;
129
public bool AutoCreateEvents { get; set; } = true;
1310
public bool ShowOnCalendar { get; set; } = true;

0-Aquiis.Core/Entities/Checklist.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ namespace Aquiis.Core.Entities
66
{
77
public class Checklist : BaseModel
88
{
9-
[RequiredGuid]
10-
[Display(Name = "Organization ID")]
11-
public Guid OrganizationId { get; set; } = Guid.Empty;
12-
139
[Display(Name = "Property ID")]
1410
public Guid? PropertyId { get; set; }
1511

0-Aquiis.Core/Entities/ChecklistItem.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@ namespace Aquiis.Core.Entities
66
{
77
public class ChecklistItem : BaseModel
88
{
9-
10-
[RequiredGuid]
11-
[Display(Name = "Organization ID")]
12-
public Guid OrganizationId { get; set; } = Guid.Empty;
13-
149
[RequiredGuid]
1510
[Display(Name = "Checklist ID")]
1611
public Guid ChecklistId { get; set; }

0-Aquiis.Core/Entities/ChecklistTemplate.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ namespace Aquiis.Core.Entities
55
{
66
public class ChecklistTemplate : BaseModel
77
{
8-
[RequiredGuid]
9-
[Display(Name = "Organization ID")]
10-
public Guid OrganizationId { get; set; } = Guid.Empty;
11-
128
[Required]
139
[StringLength(100)]
1410
[Display(Name = "Template Name")]

0-Aquiis.Core/Entities/ChecklistTemplateItem.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ namespace Aquiis.Core.Entities
66
{
77
public class ChecklistTemplateItem : BaseModel
88
{
9-
[RequiredGuid]
10-
[Display(Name = "Organization ID")]
11-
public Guid OrganizationId { get; set; } = Guid.Empty;
12-
139
[RequiredGuid]
1410
[Display(Name = "Checklist Template ID")]
1511
public Guid ChecklistTemplateId { get; set; }

0 commit comments

Comments
 (0)