CluPilotCloud/app/Services/Stripe
nexxo 40532c6e02 Put the money gate in the class that promises it
AdoptStripePrice says in its own docblock that no adoption can move money, and
could compare three properties. The four that also decide what a Price charges
were filtered in HttpStripeClient — where FakeStripeClient cannot express them,
so no test of the class could reach the promise it makes, and a third client
implementation would drop the check in silence.

The client reports them now and the caller decides. Absent keys stay Stripe's
defaults, which is the direction that matters: read the other way round the gate
refuses every legitimate price and recognition becomes a no-op nothing alerts on.

And the unexplained-orphan warning is a state, not an event. It fired on every
sweep and every customer booking for as long as the orphan existed; once a day
per price is enough to act on.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:04:25 +02:00
..
FakeStripeClient.php Put the money gate in the class that promises it 2026-07-30 17:04:25 +02:00
HttpStripeClient.php Put the money gate in the class that promises it 2026-07-30 17:04:25 +02:00
IdempotencyKey.php Put the price recognition back, all 3526 lines of it 2026-07-30 16:35:55 +02:00
StripeCheck.php Manage the Stripe key from the console, behind a password and a test 2026-07-27 09:01:16 +02:00
StripeClient.php Put the money gate in the class that promises it 2026-07-30 17:04:25 +02:00