Commit Graph

42 Commits

Author SHA1 Message Date
Fabian @ Blax Software 7d35c224f3 fix: product_action_runs.action_id must be uuidMorphs (ProductAction is HasUuids)
morphs('action') creates a bigint action_id, but ProductAction uses HasUuids — so ProductAction::callForProduct's run-logging dies with 'Incorrect integer value: <uuid>' on the first dispatch. uuidMorphs('action') matches the uuid key. Fresh-install fix; existing installs need an in-place widen.
2026-06-10 11:33:09 +02:00
Fabian @ Blax Software d4ae9339ac feat(subscriptions): Cashier-backed subscription lifecycle with product link + events
Adds the package's missing subscription lifecycle so any host app gets
duration-aware, product-linked subscriptions without re-implementing billing:

- Models: Subscription (extends Laravel\Cashier\Subscription) + SubscriptionItem,
  in the package's UUID convention, resolved through shop.models/shop.tables.
  Subscription gains product()/resolveProduct(), callProductActions() (runs the
  product's ProductActions with the subscription + an access-expiry override),
  and recordStarted()/recordRenewed()/recordCanceled() lifecycle hooks.
- Events: SubscriptionStarted / SubscriptionRenewed / SubscriptionCanceled,
  carrying the Cashier subscription so host subclasses work too.
- Migration: UUID subscriptions / subscription_items tables (hasTable-guarded,
  config table names, nullable product_id + current_period_* columns).
- ShopServiceProvider points Cashier at these models by default; opt out via
  shop.subscriptions.register_cashier_models for apps that subclass Cashier.

Additive and backward-compatible (registration is config-gated, tables are
guarded). Adds SubscriptionLifecycleTest; full suite 1409 green. Docs + README.
2026-06-02 11:40:15 +02:00
Fabian @ Blax Software 4712133eac IAM "max usage" feature 2026-05-19 14:01:52 +02:00
Fabian @ Blax Software 0cfbdf221d BF edgecases, R structure, A tests 2026-05-18 13:05:38 +02:00
Fabian @ Blax Software fe41475c84 I loanable product type, tiered pricing, lifecycle events, host helpers 2026-05-15 10:27:59 +02:00
Fabian @ Blax Software 1a8f111110 I order 2026-01-05 12:29:55 +01:00
Fabian @ Blax Software a66fd7ccb8 BFI cart / orders 2026-01-05 10:30:21 +01:00
Fabian @ Blax Software cbb4b84948 BF cart/pool/booking 2026-01-05 09:07:09 +01:00
Fabian @ Blax Software 136b7ade63 A prompts, I docs/readme, BF orders, R tests locations 2025-12-30 09:29:43 +01:00
Fabian @ Blax Software 7aeffd27a9 RI optimizations 2025-12-29 11:11:27 +01:00
Fabian @ Blax Software 9c1fcd6cfd AM orders 2025-12-29 09:59:02 +01:00
Fabian @ Blax Software 0e6b420297 BFI pool cart 2025-12-20 12:19:34 +01:00
Fabian @ Blax Software 317b28af8a BFIM pool cart checkout, stocks/productpurchase 2025-12-19 13:32:00 +01:00
Fabian @ Blax Software f6c60f3d79 BFI cart conversion product purchase, R cart dates 2025-12-19 09:53:44 +01:00
Fabian @ Blax Software e687836024 BF index too long 2025-12-18 12:55:11 +01:00
Fabian @ Blax Software 23a85762a5 BF index too long 2025-12-18 12:39:59 +01:00
Fabian @ Blax Software d13945a731 IMU cart + test 2025-12-18 12:21:29 +01:00
Fabian @ Blax Software 3d7a273946 BFI cart & tests 2025-12-17 16:43:22 +01:00
Fabian @ Blax Software 1b2559b824 RI cartitems, A exceptions, tests 2025-12-17 12:26:26 +01:00
Fabian @ Blax Software 0e776b6d84 BFM customer uuid morph, RD example product test 2025-12-17 08:29:20 +01:00
Fabian @ Blax Software 67917e6a31 A booking/pool procedures & tests, IA tests, exceptions 2025-12-15 11:32:31 +01:00
Fabian @ Blax Software c711afb570 R reserve to claim 2025-12-04 11:06:09 +01:00
a6a2f5842 c5004158eb A types, enums & statuses, U product models, I shopping trait, A booking support, R tests 2025-12-03 13:59:01 +01:00
a6a2f5842 2008a16a53 I price factory, RA product traits 2025-12-03 13:21:23 +01:00
a6a2f5842 a61620e607 BF stub migration for SQL 2025-12-02 09:15:53 +01:00
a6a2f5842 a4fedcdb58 A tests, I product action 2025-11-29 20:09:19 +01:00
a6a2f5842 c6c159a4ff I tests & structure 2025-11-29 12:05:02 +01:00
a6a2f5842 ffc8716c22 A stripe & BFI cart 2025-11-28 10:24:07 +01:00
a6a2f5842 929e87bc28 AI payment process & payment provider files 2025-11-26 11:09:52 +01:00
a6a2f5842 01c21506b6 BFI tests 2025-11-25 12:33:42 +01:00
a6a2f5842 7c6b61da45 BFI tests 2025-11-24 14:32:11 +01:00
a6a2f5842 c1f531e659 BFI tests 2025-11-24 07:00:07 +01:00
a6a2f5842 ab1e2468ca BFI tests fixing, prices, purchases, cart 2025-11-23 15:07:12 +01:00
a6a2f5842 fda536deea BFIM bugfixed failed tests 2025-11-22 18:09:45 +01:00
a6a2f5842 2c31b6ea98 IM product purchase process 2025-11-22 15:13:30 +01:00
a6a2f5842 afe7359ea4 R product columns 2025-11-22 09:55:58 +01:00
a6a2f5842 b65706e029 MBF product prices migration 2025-11-21 16:30:50 +01:00
a6a2f5842 a0fcde8c3e BF shop example command 2025-11-21 16:11:43 +01:00
a6a2f5842 af4f6b9fa6 MBF product categories migration 2025-11-21 16:03:24 +01:00
a6a2f5842 b76ae2f867 MI product name, short and description 2025-11-21 15:55:15 +01:00
a6a2f5842 2244bc4cf1 BF default json 2025-11-21 15:13:52 +01:00
a6a2f5842 d610cc5717 init 2025-11-21 11:49:41 +01:00