- Expediere
- 11 august 2026 la 01:03 UTC
- Autor
- Kamo
- Comite
- 67e586e
Trei lucruri lipseau şi unul era activ dăunător. account membri au avut un unic global pe membru id Exact un cont de facturare-la nivelul platformei. Acesta este tavanul care a făcut fiecare aranjament multi-payer imposibil, și a fost deja de a face daune mai degrabă decât doar limitatoare: AccountMemberService.add() lucrate în jurul acestuia în tăcere DELETAREA rând membru pe contul lor anterior, astfel acordarea accesului la facturare să-l revocat de la altul fără nici un avertisment; și să promovezeToBillingOwner aruncat o încălcare a constrângerilor la a doua cursă, transformând un dublu clic într-un 500. ă compozit unic pe (cont uid, membru id) a existat deja și exprimă Regula reală. Dropping it makes a derivaty findByMemberId returning Opţional throw the moment Oricine ţine două rânduri, şi nouă apelanţi se bazează pe asta. Acum este o interogare limitată. ordonat de creaţie, astfel încât cei care apelează să păstreze răspunsul au avut în loc de în funcţie de ceea ce planificatorul se întoarce primul; găsiţiAllByMemberId este acolo pentru cod care le vrea pe toate. OrgBillingPolicy este controlul preventiv pe care proprietarul nu l-a avut niciodată. 2026-04-16 design specificat facturare delegare mod și punerea în aplicare a scăzut, lăsând un gest ireversibil de promovare și nici o modalitate de a spune în avans dacă auto-plata a fost permisă la toate membrii se auto-subscrie oricum. În cazul în care un mod interzice ceva suprafețele ascunde mai degrabă decât oferindu-l și eșec. BillingGroup denumeste un aranjament modelul deja permis: AccountSubscription este unic pe (cont, piață, org țintă), astfel încât mai multe conturi ar putea oricând tinta o organizatie. Acesta nu poartă nici o listă de propria AbonareMembru plus AccountLicense, același răspuns ca pentru oricine altcineva, și un A doua listă ar fi un al doilea adevăr de păstrat.