Skip to content

Conversation

@scott-enableyou
Copy link
Collaborator

Implement complete .NET 9 solution with Clean Architecture:

Domain Layer (Luminous.Domain):

  • Core entities: Family, User, Device, Event, Chore, Routine, etc.
  • Value objects: FamilySettings, UserProfile, CaregiverInfo, etc.
  • Repository interfaces and Unit of Work pattern
  • Domain events for cross-cutting concerns

Application Layer (Luminous.Application):

  • MediatR-based CQRS pattern
  • FluentValidation validators
  • Pipeline behaviors (validation, logging, performance)
  • DTOs for API responses

Infrastructure Layer (Luminous.Infrastructure):

  • CosmosDB context and repositories
  • Centralized dependency injection
  • Options pattern for configuration

API Layer (Luminous.Api):

  • ASP.NET Core Web API controllers
  • Exception handling middleware
  • Swagger/OpenAPI documentation
  • Current user service

Test Projects:

  • Domain.Tests, Application.Tests, Api.Tests, Integration.Tests
  • Sample unit tests with xUnit, FluentAssertions, Moq

Build Configuration:

  • Centralized package management (Directory.Packages.props)
  • Shared build properties (Directory.Build.props)
  • SDK version pinning (global.json)

Closes Phase 0.2 milestone items 0.2.1-0.2.7

Implement complete .NET 9 solution with Clean Architecture:

**Domain Layer (Luminous.Domain):**
- Core entities: Family, User, Device, Event, Chore, Routine, etc.
- Value objects: FamilySettings, UserProfile, CaregiverInfo, etc.
- Repository interfaces and Unit of Work pattern
- Domain events for cross-cutting concerns

**Application Layer (Luminous.Application):**
- MediatR-based CQRS pattern
- FluentValidation validators
- Pipeline behaviors (validation, logging, performance)
- DTOs for API responses

**Infrastructure Layer (Luminous.Infrastructure):**
- CosmosDB context and repositories
- Centralized dependency injection
- Options pattern for configuration

**API Layer (Luminous.Api):**
- ASP.NET Core Web API controllers
- Exception handling middleware
- Swagger/OpenAPI documentation
- Current user service

**Test Projects:**
- Domain.Tests, Application.Tests, Api.Tests, Integration.Tests
- Sample unit tests with xUnit, FluentAssertions, Moq

**Build Configuration:**
- Centralized package management (Directory.Packages.props)
- Shared build properties (Directory.Build.props)
- SDK version pinning (global.json)

Closes Phase 0.2 milestone items 0.2.1-0.2.7
Replace all Guid.NewGuid() usages with NanoId.Generate() for URL-friendly,
compact unique identifiers. Updates include:

- Add NanoId package to Directory.Packages.props
- Update Entity base class to use NanoId
- Update DomainEvent to use NanoId for event IDs
- Update FamilyList and ListItem to use NanoId
- Update Invitation code generation to use NanoId
- Update test files to use NanoId for test data
- Update ARCHITECTURE.md with NanoId documentation
@trickpatty trickpatty merged commit 687d29f into main Dec 21, 2025
@trickpatty trickpatty deleted the claude/implement-dotnet-structure-QmEMv branch December 21, 2025 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants