From 01a34f87f8ca6826e81754c98029f7bb9f0828e0 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Fri, 9 Oct 2026 19:19:36 +0200 Subject: [PATCH] docs(roadmap): insert phase 18.1 payment gateway subscriptions --- .planning/ROADMAP.md | 24 +++++++++++++++++++++++- .planning/STATE.md | 5 +++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 8c9c89a..43fe5aa 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -1020,6 +1020,27 @@ Plans: Plans: - [ ] TBD (run $gsd-plan-phase 18 to break down) +### Phase 18.1: Payment Gateway Subscriptions (INSERTED) + +**Goal:** The generic core of `Golem15.PaymentGatewaySubscriptions` and pgstripe's subscription gateway and webhook run on SummerCMS. Horoskopia's subscription flow (plans, checkout, Stripe webhook, `golem15.pgsub.*` events, cancel and portal) works as it does on PHP. +**Mode:** mvp +**Depends on:** Phase 18 +**Repos:** `sm-paymentgatewaysubscriptions-plugin` (new, under `git.golem15.com/golem15/`); a subpackage of `sm-pgstripe-plugin`; `vue-paymentgateway-layer`; `summercms.go` only if a framework feature is missing +**Port sources:** `Golem15.PaymentGatewaySubscriptions` at `ac3d73c` plus `5fb9dac`, and pgstripe `8b47457`, at `/media/nvme/dev/golem15/horoskopia.eu/plugins/golem15/{paymentgatewaysubscriptions,pgstripe}`. Quotify's lead fees, featured placements and analytics are not ported here. +**Requirements**: TBD +**Success Criteria** (what must be TRUE): + + 1. Subscription and SubscriptionPlan port on a squashed, idempotent v2.4.0 baseline that adopts existing PHP databases, with polymorphic subscribers registered at build time and a built-in `user` subscribable. + 2. The `SubscriptionGateway` contract (including `syncPlanToGateway`) has a Stripe implementation. `POST /webhook/stripe/subscriptions` and its legacy alias verify the event, enqueue a job and process it idempotently, and fire the six `golem15.pgsub.*` events. + 3. The Subscriptions and SubscriptionPlans admin screens, a Go service API, a headless customer API and subscription components in `vue-paymentgateway-layer` are delivered. + 4. A host test proves checkout, activation, `invoice.paid`, `past_due` with its grace period, cancel and duplicate-event idempotency against a Stripe fake. + 5. The new code has unit tests, delivered in the phase's last plan. + +**Plans:** 0 plans + +Plans: +- [ ] TBD (run /msd-plan-phase 18.1 to break down) + ### Phase 19: Chat and ChatChannels **Goal:** `Golem15.Chat` and `Golem15.ChatChannels` run on SummerCMS as shared plugins, with realtime delivery through `lighthouse`, ready for the Wavepath port. @@ -1079,7 +1100,7 @@ Plans: ## Progress **Execution Order:** -Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12 → 13 → 14 → 14.1 → 14.2 → 14.2.1 → 14.3 → 15 → 16 → 17 → 18 → 19 → 19.1 → 20 +Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12 → 13 → 14 → 14.1 → 14.2 → 14.2.1 → 14.3 → 15 → 16 → 17 → 18 → 18.1 → 19 → 19.1 → 20 (Phase 2 depends on Phase 1's command kernel; the two are no longer parallel.) | Phase | Plans Complete | Status | Completed | @@ -1107,6 +1128,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 16. grzybyfunkcjonalne.pl on reusable blog views | 3/5 | In Progress| | | 17. Blog companions | 0/TBD | Not started | - | | 18. Payment Gateway | 0/TBD | Not started | - | +| 18.1. Payment Gateway Subscriptions | 0/TBD | Not started | - | | 19. Chat and ChatChannels | 0/TBD | Not started | - | | 19.1. Chat satellites | 0/TBD | Not started | - | | 20. Płytarium cutover | 0/TBD | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index 8c34d77..850dfe1 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -8,9 +8,9 @@ stopped_at: Completed 16-03-PLAN.md last_updated: "2026-10-09T16:56:24.832Z" last_activity: 2026-10-09 last_activity_desc: Phase 16 execution started -state_head: 65d577b8285e7119db790b640324917fb180b98e +state_head: 6ff7d5da3ed237181f347d94f75a5b9877306ad3 progress: - total_phases: 31 + total_phases: 32 completed_phases: 13 total_plans: 148 completed_plans: 142 @@ -219,6 +219,7 @@ Progress: [██████████] 100% - Phase 20 edited: Płytarium production cutover moved here from Phase 15 - Phase 14.2.1 inserted after Phase 14.2: sm-translate-plugin so Journal can keep translatable fields (URGENT) - Phase 14.3 inserted after Phase 14.2.1: One-command app scaffolding: summer new + summercms.io/new bootstrap script; ships as v0.1.13 (URGENT) +- Phase 18.1 inserted after Phase 18: Payment Gateway Subscriptions (split from Phase 18 per 18-CONTEXT D-01) ### Decisions