Conversation
There was a problem hiding this comment.
Pull request overview
This PR implements Phase 2.6 of the In-App Notifications UI and adds the Professional project infrastructure. The changes introduce comprehensive database management capabilities, workflow state machines for application and lease lifecycles, validation attributes, and notification/communication services.
- Database backup, restore, and health check functionality with schema version management
- Application and lease workflow services with state machine validation and audit logging
- Custom validation attributes for Guid fields and notification/communication service interfaces
- Entity models for security deposits, notifications, calendar events, and organization settings
Reviewed changes
Copilot reviewed 101 out of 517 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| ManageDatabase.razor | Admin UI for database backup, restore, health checks, and schema initialization |
| InitializeSchemaVersion.razor | Dedicated page for manual schema version initialization |
| DailyReport.razor | Dashboard for daily payment reports and statistics |
| ApplicationUser.cs | Identity user class extension |
| ApplicationDbContext.cs | Entity Framework DbContext for Identity |
| RequiredGuidAttribute.cs | Validation attribute for non-empty Guid values |
| OptionalGuidAttribute.cs | Validation attribute for optional Guid fields |
| BaseService.cs | Abstract service with CRUD operations and multi-tenancy support |
| ISMSService.cs, IEmailService.cs | Service interfaces for SMS and email functionality |
| ICalendarEventService.cs | Service interface for calendar event management |
| IAuditable.cs | Interface for audit field tracking |
| UserOrganization.cs, Organization.cs | Multi-organization user assignment entities |
| Tour.cs, Tenant.cs, Property.cs, Payment.cs | Core property management entities |
| SecurityDeposit*.cs | Security deposit investment pool entities |
| Lease.cs, Invoice.cs, MaintenanceRequest.cs | Lease and maintenance entities |
| RentalApplication.cs, ProspectiveTenant.cs | Application workflow entities |
| Checklist*.cs, Inspection.cs | Checklist and inspection entities |
| CalendarEvent*.cs | Calendar event entities and configuration |
| Document.cs, Note.cs, Notification*.cs | Document and notification entities |
| ApplicationSettings.cs, ApplicationConstants.cs | Configuration and constant definitions |
| NotificationConstants.cs, EntityTypeNames.cs | Notification and entity type constants |
| App.razor, MainLayout.razor, NavMenu.razor | UI layout components |
| Aquiis.Professional.csproj | Project configuration with package references |
| WorkflowResult.cs, WorkflowAuditLog.cs | Workflow result and audit entities |
| LeaseWorkflowService.cs | Lease lifecycle state machine implementation |
| IWorkflowState.cs, BaseWorkflowService.cs | Workflow infrastructure |
| ApplicationWorkflowService.cs | Application lifecycle state machine implementation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| /// ID of the entity that transitioned | ||
| /// </summary> | ||
| public required Guid EntityId { get; set; } | ||
| /// </summary> |
There was a problem hiding this comment.
Line 20 contains a closing documentation comment without a matching opening comment. The XML documentation comment on line 18-19 appears to be incomplete, and line 20's closing tag should either be removed or the documentation for EntityId should be completed.
| /// </summary> |
| /// Well-known GUID for system service account. | ||
| /// Used by background jobs, scheduled tasks, and automated processes. | ||
| /// </summary> | ||
| public static readonly string Id = "00000000-0000-0000-0000-000000000001"; |
There was a problem hiding this comment.
The SystemUser.Id is declared as a string but represents a GUID. Consider changing this to Guid type for type safety and consistency with the rest of the codebase that uses Guid for IDs.
Phase 2.6 In-App Notifications UI complete and added professional project.