claude-meta/memory/projects/GoodWoodApp/MEMORY.md

21 lines
1.1 KiB
Markdown

# GoodWood App Notes
## Architecture
- Blazor Server (.NET 9), Clean Architecture: Domain → Application → Infrastructure → Web
- Fluxor (Redux): Store/{Feature}State/{Actions,Reducers,Effects,State}.cs pattern
- AutoMapper profiles in Application/Mapping/
- EF migrations: `dotnet ef migrations add [Name] --project src/GoodWood.Infrastructure --startup-project src/GoodWood.Web --context AppDbContext --output-dir Data/Migrations`
- Dual DbContext: AppDbContext (app schema), AppIdentityDbContext (auth schema)
## Code-behind pattern
- Partial classes: Component.razor + Component.razor.cs
- [Inject] needs `using Microsoft.AspNetCore.Components;` in .cs files (not auto-imported unlike .razor)
## SEPA Export (added 2026-02-08)
- pain.008.003.02 XML generated by SepaXmlBuilder (System.Xml, no external lib)
- Download via JS: `window.downloadFile` in wwwroot/js/fileDownload.js
- SepaExport entity links CashBookEntries via nullable FK SepaExportId
- PaymentStatus enum on CashBookEntry: Open/DirectDebitCollected/Paid
- Person gets: Iban, Bic, SepaMandateReference, SepaMandateDate
- Club gets: BankIban, BankBic, SepaCreditorId