wip: article AI polish, category SEO fields, cover generator, membership plan seeder
CI / PHPUnit (PHP 8.3) (push) Failing after 4s
CI / PHPUnit (PHP 8.2) (push) Failing after 1m9s
CI / Deploy (manual gate) (push) Skipped

This commit is contained in:
2026-09-07 18:48:37 +00:00
parent 263b98b218
commit 3cec4c5e18
121 changed files with 4701 additions and 313 deletions
+38
View File
@@ -0,0 +1,38 @@
# 会员插件 — 功能清单
## 状态
- 对应 SPEC`docs/specs/membership/SPEC.md`
- 最近更新:2026-08-12 03:55
## 完成项
### payment 核心配套
- [x] `entitlements.expires_at` 迁移
- [x] `hasEntitlement` / `markPaid.ownedElsewhere` / `scopeActive`/`isActive` 统一未过期语义
- [x] `hasActiveAny(userId, productType)`
- [x] `resolveCheckoutProduct`membership 服务端取价;未知类型 422(去掉 query 兜底)
### 核心扩展
- [x] `filament.article.validate_access_restrictions` 挂载(Create/Edit
- [x] `MembershipPluginPage` 导航恒隐藏
- [x] paid-content:互斥改到 validate 点;mutate 不再抢先 unset
### membership 插件
- [x] plugin.json `requires` + docs README
- [x] migrations`membership_plans``article_membership`
- [x] models + PlanSeeder(月度/终身)
- [x] Filament PlanResource
- [x] `order.paid` 写 expires_atfail-closed
- [x] 前台套餐页 + status JSON + 资料页状态
- [x] 文章表单会员闸 + article.access + 互斥
- [x] 删除 plan 守卫(引用/权益)
### 文档与测试
- [x] docs/plugins.md
- [x] PHPUnit Membership + PaidContent 回归(50 passed
## 变更记录
| 时间 | 原因 | 变更 |
|------|------|------|
| 2026-08-12 03:45 | SPEC 用户确认定稿 | 创建功能清单 |
| 2026-08-12 03:55 | 实现完成 | 勾选全部完成项 |