21 lines
1.1 KiB
Markdown
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
|