Files
larablog/docs/specs/membership/CHECKLIST.md
T
gouki 3cec4c5e18
CI / PHPUnit (PHP 8.3) (push) Failing after 4s
CI / PHPUnit (PHP 8.2) (push) Failing after 1m9s
CI / Deploy (manual gate) (push) Skipped
wip: article AI polish, category SEO fields, cover generator, membership plan seeder
2026-09-07 18:48:37 +00:00

39 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 会员插件 — 功能清单
## 状态
- 对应 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 | 实现完成 | 勾选全部完成项 |