Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
016c187
Eternelle-191 Add InternalsVisibleTo for Weddings + Rsvp infrastructure
engrkwakwak May 29, 2026
acb010b
Eternelle-191 Lift Person* VOs from Weddings to Common.Domain.People
engrkwakwak May 29, 2026
1e26a95
Eternelle-191 Refactor(common-domain): lift RichDescription to Common…
engrkwakwak May 29, 2026
be2bb93
Eternelle-191 Refactor(common-domain): lift GroupLabel and InternalNo…
engrkwakwak May 29, 2026
d1d4f08
Eternelle-191 Add EmailAddress and PhoneNumber VOs
engrkwakwak May 29, 2026
6c75477
Eternelle-191 Scaffold five-project module skeleton
engrkwakwak May 29, 2026
8438ae1
Eternelle-191 Add IDs and shared VOs (LookupCode, DietaryNote)
engrkwakwak May 29, 2026
dd13ec5
Eternelle-191 feat(rsvp-domain): add Wedding mirror entity + IWedding…
engrkwakwak May 29, 2026
d4591cf
Eternelle-191 Add Guest aggregate, domain events, repository interface
engrkwakwak May 29, 2026
9f2ca52
Eternelle-191 Add RsvpSubmission aggregate + companion child + domain…
engrkwakwak May 29, 2026
707fb8d
Eternelle-191 Add GuestAdded + RsvpSubmitted integration events
engrkwakwak May 29, 2026
1e8ac0b
Eternelle-191 Add AssemblyReference + Application abstractions
engrkwakwak May 29, 2026
aacce4f
Eternelle-191 Add AssemblyReference, Tags, RateLimitingPolicies
engrkwakwak May 29, 2026
1b6e965
Eternelle-191 Add DbContext, ID converters, design-time factory
engrkwakwak May 29, 2026
27f8463
Eternelle-191Add EF entity configurations
engrkwakwak May 29, 2026
b499a6b
Eternelle-191 Add EF configurations, repositories, Wedding projection
engrkwakwak May 29, 2026
2f64566
Eternelle-191 Clone Inbox/Outbox pipeline from Tenancy
engrkwakwak May 29, 2026
8d57012
Eternelle-191 Add RsvpModule DI registration
engrkwakwak May 29, 2026
f7e78c9
Eternelle-191 Add LookupCodeGenerator, complete infrastructure
engrkwakwak May 29, 2026
13f628d
Eternelle-191 Register Rsvp module + rate-limit policies
engrkwakwak May 29, 2026
3c7786c
Eternelle-191 Add modules.rsvp.json config
engrkwakwak May 29, 2026
1d39c36
Eternelle-191 Initial migration + register with MigrationExtensions
engrkwakwak May 29, 2026
5d01e26
Eternelle-191 Consume WeddingCreatedIntegrationEvent into rsvp.weddin…
engrkwakwak May 29, 2026
21a0b58
Eternelle-191 AddGuest command
engrkwakwak May 29, 2026
0b06c1b
Eternelle-191 UpdateGuestContact command
engrkwakwak May 29, 2026
edb7e61
Eternelle-191 ChangeGuestAllowance command
engrkwakwak May 29, 2026
2198945
Eternelle-191 UpdateGuestPlacement command
engrkwakwak May 29, 2026
7c94d81
Eternelle-191 LockGuest + UnlockGuest commands
engrkwakwak May 29, 2026
85c8ec0
Eternelle-191 RegenerateGuestToken command
engrkwakwak May 29, 2026
f9e21bb
Eternelle-191 RemoveGuest command
engrkwakwak May 29, 2026
5e76e1b
Eternelle-191 GetGuest query
engrkwakwak May 29, 2026
47a2832
Eternelle-191 ListGuests query
engrkwakwak May 29, 2026
f850889
Eternelle-191 ListGuests style fixes (IDE0007, IDE0031)
engrkwakwak May 29, 2026
5b87de7
Eternelle-191 SetRsvpDeadline + ClearRsvpDeadline commands
engrkwakwak May 29, 2026
ea70a12
Eternelle-191 GetInvitation public query
engrkwakwak May 29, 2026
dd25f2e
Eternelle-191 SubmitRsvp public command
engrkwakwak May 29, 2026
0b13a44
Eternelle-191 SubmitOnBehalf command
engrkwakwak May 29, 2026
8fce1f9
Eternelle-191 Submission queries (GetSubmission, ListSubmissions, Get…
engrkwakwak May 29, 2026
4711944
Eternelle-191 Guest CRUD endpoints
engrkwakwak May 29, 2026
22a9d82
Eternelle-191 Submission endpoints
engrkwakwak May 29, 2026
09330ac
Eternelle-191 Wedding deadline endpoints
engrkwakwak May 29, 2026
e173eec
Eternelle-191 Public invitation + submit endpoints
engrkwakwak May 29, 2026
ab613a6
Eternelle-191 Update schema: Tier, PriceClass, SectionId to integers
engrkwakwak May 29, 2026
a2526bb
Eternelle-191 Replace database-design.md with system architecture.md
engrkwakwak May 29, 2026
31aaba6
Eternelle-191 Remove weddings inbox/outbox plan; update logging filters
engrkwakwak May 29, 2026
ee60578
Eternelle-191 Refactor RSVP queries to use Dapper and SQL projections
engrkwakwak May 30, 2026
7db7476
Eternelle-191 Add CancellationToken support to DB ops, minor cleanups
engrkwakwak May 30, 2026
a2135df
Eternelle-191 Use CommandDefinition in QueryAsync for better handling
engrkwakwak May 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CLAUDE.md — Eternelle

Modular monolith backend in **.NET 10**, Clean Architecture + full DDD.
Database design: `docs/database-design.md`.
System architecture: `docs/architecture.md`.
Module conventions (authoritative): `docs/module-conventions.md`.
Per-module reference docs: `docs/modules/` (Weddings, Users, Catalog, Tenancy).

Expand Down
17 changes: 14 additions & 3 deletions Eternelle.slnx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Solution>
<Folder Name="/docs/">
<File Path="docs/database-design.md" />
<File Path="docs/architecture.md" />
<File Path="docs/feature-gift-contributions.md" />
<File Path="docs/feature-guest-photo-upload.md" />
<File Path="docs/module-conventions.md" />
Expand All @@ -14,14 +14,18 @@
<Folder Name="/docs/superpowers/" />
<Folder Name="/docs/superpowers/plans/">
<File Path="docs/superpowers/plans/2026-05-20-users-module.md" />
<File Path="docs/superpowers/plans/2026-05-24-weddings-inbox-outbox-alignment.md" />
<File Path="docs/superpowers/plans/2026-05-27-catalog-module.md" />
<File Path="docs/superpowers/plans/2026-05-28-tenancy-module.md" />
<File Path="docs/superpowers/plans/2026-05-29-rsvp-module.md" />
<File Path="docs/superpowers/plans/2026-05-30-album-module.md" />
</Folder>
<Folder Name="/docs/superpowers/specs/">
<File Path="docs/superpowers/specs/2026-05-20-users-module-design.md" />
<File Path="docs/superpowers/specs/2026-05-27-catalog-module-design.md" />
<File Path="docs/superpowers/specs/2026-05-28-tenancy-module-design.md" />
<File Path="docs/superpowers/specs/2026-05-29-rsvp-module-design.md" />
<File Path="docs/superpowers/specs/2026-05-30-album-module-design.md" />
<File Path="docs/superpowers/specs/2026-05-30-guestbook-module-design.md" />
</Folder>
<Folder Name="/Solution Items/">
<File Path=".editorconfig" />
Expand All @@ -46,6 +50,13 @@
<Project Path="src/Modules/Catalog/Eternelle.Modules.Catalog.IntegrationEvents/Eternelle.Modules.Catalog.IntegrationEvents.csproj" />
<Project Path="src/Modules/Catalog/Eternelle.Modules.Catalog.Presentation/Eternelle.Modules.Catalog.Presentation.csproj" />
</Folder>
<Folder Name="/src/Modules/Rsvp/">
<Project Path="src/Modules/Rsvp/Eternelle.Modules.Rsvp.Application/Eternelle.Modules.Rsvp.Application.csproj" Id="584d8710-9449-4431-9359-59ec784eb276" />
<Project Path="src/Modules/Rsvp/Eternelle.Modules.Rsvp.Domain/Eternelle.Modules.Rsvp.Domain.csproj" Id="73e928a0-583f-4b26-93de-d541914305d4" />
<Project Path="src/Modules/Rsvp/Eternelle.Modules.Rsvp.Infrastructure/Eternelle.Modules.Rsvp.Infrastructure.csproj" Id="2c5fbf2f-a4ee-46ed-beb7-d76408d75222" />
<Project Path="src/Modules/Rsvp/Eternelle.Modules.Rsvp.IntegrationEvents/Eternelle.Modules.Rsvp.IntegrationEvents.csproj" Id="55dc7f38-3a59-4077-8249-46530f103444" />
<Project Path="src/Modules/Rsvp/Eternelle.Modules.Rsvp.Presentation/Eternelle.Modules.Rsvp.Presentation.csproj" Id="4f8b50a7-2c4a-46eb-b83a-63007eab9e69" />
</Folder>
<Folder Name="/src/Modules/Tenancy/">
<Project Path="src/Modules/Tenancy/Eternelle.Modules.Tenancy.Application/Eternelle.Modules.Tenancy.Application.csproj" />
<Project Path="src/Modules/Tenancy/Eternelle.Modules.Tenancy.Domain/Eternelle.Modules.Tenancy.Domain.csproj" />
Expand All @@ -60,7 +71,7 @@
<Project Path="src/Modules/Users/Eternelle.Modules.Users.IntegrationEvents/Eternelle.Modules.Users.IntegrationEvents.csproj" Id="f4f38cd7-8af7-44a6-a6aa-4b57bb9dc00d" />
<Project Path="src/Modules/Users/Eternelle.Modules.Users.Presentation/Eternelle.Modules.Users.Presentation.csproj" Id="d6dde47a-faab-4b24-9738-6fe5d9e71738" />
</Folder>
<Folder Name="/src/Modules/Wedding/">
<Folder Name="/src/Modules/Weddings/">
<Project Path="src/Modules/Weddings/Eternelle.Modules.Weddings.Application/Eternelle.Modules.Weddings.Application.csproj" Id="a6f4ff32-35b6-40bf-a034-4aff406678ea" />
<Project Path="src/Modules/Weddings/Eternelle.Modules.Weddings.Domain/Eternelle.Modules.Weddings.Domain.csproj" Id="8ca34ec3-032b-4439-bc9f-318df0f9e87a" />
<Project Path="src/Modules/Weddings/Eternelle.Modules.Weddings.Infrastructure/Eternelle.Modules.Weddings.Infrastructure.csproj" Id="f7f463ef-3373-4063-9909-487fb52a34e0" />
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Backend for **Eternelle** — a Philippine wedding platform that lets couples bu

## Modules

Four modules are implemented; two are planned. Each is a five-project vertical slice and owns its own PostgreSQL schema. See [`docs/modules/`](docs/modules/) for per-module reference docs and [`docs/database-design.md`](docs/database-design.md) for the cross-module data model.
Four modules are implemented; two are planned. Each is a five-project vertical slice and owns its own PostgreSQL schema. See [`docs/modules/`](docs/modules/) for per-module reference docs and [`docs/architecture.md`](docs/architecture.md) for the system architecture and cross-module data model.

| Module | Schema | Status | Summary |
|---|---|---|---|
Expand Down
Loading