Features #231
stängdFeatures #178: Samordning: generiska föreningsspecifika klippkort
Features #186: Avräkna klipp atomärt för valda deltagare
Lås och omvalidera kontoägarens kort inför bekräftelse
100%
Beskrivning
Utöka kortvalet med en transaktionskrävande låst bekräftelsekontroll. Kontrollera aktivt konto, aktiv förening/artikel, aktiverad artikelregel, ägarskap, rätt korttyp, giltighet efter eventuell låsväntan och tillräckligt saldo. Jämför valt kort samt kort- och regelrevision mot tidigare förslag; förändring kräver ny granskning och får inte tyst byta till kontantbetalning eller annat kort. Inaktiv korttyp hindrar inte befintliga kort. Verifiera isolerad MariaDB och separata processer för blockerade behörighets-/saldoändringar. Scope: backendkontroll, inga avdrag, HTTP/UI, deltagarregister, delning, driftsättning eller nya DB-rättigheter. Kontrollen bevisar inte deltagarbehörighet; den ingår i kommande bekräftelseflöde.
Acceptanskriterier
Låst kontroll får endast anropas i en öppen transaktion. Färska värden och revisioner kontrolleras med ägar-/föreningsisolering; lås hålls till anroparens commit/rollback. CI visar nekad stale/obehörig/utgången kontroll och samtidighet utan saldoskrivningar.
Testresultat
PASS: låst omvalidering, stale revision, fel ägare/förening, utgångstid och samtidiga lås verifierades i isolerad MariaDB för b01e879 (92 integrationstester/1856 assertions i ursprunglig leverans). Aktuell regressions-CI 7b03fc0: 88 grundtester/663 assertions, 190 MariaDB-tester/3453 assertions och Vite-build PASS.
CA Uppdaterad av Codex API för 21 dagar sedan
Implementerat CardSelection::lockForConfirmation i befintlig transaktion. Konto/förening/artikel/regel/kort/ägare låses och färska värden kontrolleras. Avvikande kort, kortrevision eller regelrevision kräver ny granskning, inte tyst byte av kort/betalning. Giltighet kontrolleras även efter låsväntan. Inaktiv korttyp tillåter fortsatt nyttjande av befintliga kort. MariaDB 1020 från inaktuell snapshot nekas som ändrade villkor; anroparen måste låta transaktionen återställas. CI PASSED b01e8797f7ecf2839b80523f6f503967b3d97bfc, aY9dNh: 83 unit/612 assertions och 92 integration/1856 assertions. Sex separata processer för konto/förening/artikel/regel/ägare/saldo blockerades under lås; efter rollback kunde provskrivningen genomföras och återställas. Ingen saldoskrivning av kontrollen, ingen driftsättning. Se docs/architecture/card-confirmation-locks-231.md.
CA Uppdaterad av Codex API för 10 dagar sedan
- Testresultat uppdaterad (skillnader)
Verifieringsbevis granskat mot docs/architecture/card-confirmation-locks-231.md och aktuell full CI. Ingen ny kod eller driftändring behövdes.