# LegalFlow V2 — 全流程法律案件管理平台 PRD

> Generated: 2026-04-24
> Source: legalflow-v2__scored-demand__20260424-1519.md + legalflow-v2__live-demand__20260424-1518.md
> Tech Stack: Next.js (App Router) + Prisma + PostgreSQL + Tailwind CSS
> 定位：从 MVP 工具升级为完整商业级法律案件管理平台

---

## 1. Problem & User

**目标用户：** 中小型律所（5-50人）的律师、合伙人、律师助理（paralegal）和法务行政人员。

**核心痛点：** LegalFlow V1 仅覆盖市场标配功能的约30%（案件管理、证据链、截止日期、利益冲突检测），缺少认证登录、权限控制、时间计费、文档管理、客户门户等商业运营必备模块。律所无法将其作为日常生产工具使用，因为：

1. **无认证系统** — 任何人可访问所有数据，不满足律所保密义务要求
2. **无时间计费** — 律师漏记工时导致收入流失，行业痛点排名第一（情绪评分 5/5）
3. **无文档自动化** — 法律文档高度格式化，手工填充案件信息耗时且易出错
4. **无客户自助门户** — 客户频繁电话询问进展，占用律师大量时间
5. **无移动端适配** — 律师出庭/出差时无法使用系统

**竞品对标：** Clio ($49-139/user/mo)、MyCase ($39-89/user/mo)、PracticePanther ($59-129/user/mo)。LegalFlow V2 定位为功能完整但价格更具竞争力的替代方案。

---

## 2. Target Outcome & KPIs

- **KPI-1：** 注册律所 7 日留存率 ≥ 40%（完成至少一个完整工作流：建案→计时→出账单）
- **KPI-2：** 月活跃用户（MAU）中至少 60% 使用时间计费功能
- **KPI-3：** 试用期转付费率 ≥ 8%（14 天免费试用后）
- **KPI-4：** 客户门户启用率 ≥ 30%（说明律所认可协作价值）

---

## 3. MVP Scope (In) — 完整商业版

### Module A: 认证与权限系统
- 邮箱/密码注册登录 + Magic Link
- 2FA（TOTP）
- 角色权限：Admin / Attorney / Paralegal / Client（只读门户）
- 律所（Firm）多租户隔离
- 会话管理与审计日志

### Module B: Dashboard & 通知中心
- 律师视角：今日待办、即将到期案件、未计时提醒、未读通知
- 合伙人视角：律所营收概览、律师利用率、案件分布
- 应用内通知 + 邮件通知（截止日期、案件分配、状态变更）

### Module C: 案件管理增强
- 保留 V1 案件管理核心（案件CRUD、证据链、利益冲突、审计日志）
- 新增：案件状态工作流（Open → Active → Pending → Closed）
- 新增：案件标签/分类（practice area: litigation, family, immigration 等）
- 新增：联系人/客户管理（关联到案件，支持搜索）
- 新增：全文搜索（案件、联系人、文档）

### Module D: 时间跟踪与计费
- 手动/计时器两种计时方式
- 时间条目关联到案件+律师
- 费率设置（按律师、按案件类型）
- 发票生成（从未计费时间条目一键生成）
- 发票 PDF 导出
- 在线支付集成（Stripe）
- 信托账户基础管理（IOLTA tracking）

### Module E: 文档管理与模板
- 文件上传/下载（关联到案件）
- 文件夹组织结构
- 文档模板系统（变量占位符：{{client_name}}、{{case_number}} 等）
- 从模板一键生成文档（自动填充案件数据）
- 版本历史

### Module F: 客户协作门户
- 客户通过 Magic Link 登录查看自己的案件
- 案件状态/里程碑时间线
- 共享文档查看/下载
- 安全消息通信（律师↔客户）

### Module G: 日历与截止日期增强
- 保留 V1 截止日期计算引擎
- 新增：日历视图增强（月/周/日切换）
- 新增：截止日期确认机制（律师必须 acknowledge）
- 新增：逾期自动升级提醒（escalation chain）
- 新增：iCal 导出 + Google/Outlook Calendar 同步

### Module H: 报表与分析
- 律师利用率报表（billable hours / available hours）
- 案件营收报表
- 应收账款报表（AR aging）
- 案件类型分布
- PDF/CSV 导出

### Module I: 移动端适配
- 全站响应式设计（Tailwind CSS breakpoints）
- 移动端优先的关键页面：Dashboard、案件详情、计时器、通知
- PWA 支持（离线查看、推送通知）

---

## 4. Out of Scope

- 原生 iOS/Android 应用（用 PWA 替代）
- 企业级 SSO（SAML/OKTA）— 后续版本
- AI 辅助功能（文档摘要、案情分析）— 后续版本
- 深度邮件集成（Outlook/Gmail 双向同步）— 后续版本
- 电子签名集成（DocuSign/HelloSign）— 后续版本
- 多语言/国际化
- 法院规则数据库自动同步

---

## 5. User Flow (Happy Path)

**律师首次使用流程：**

1. 注册 → 创建律所 → 邀请团队成员 → 设定角色
2. 创建案件 → 添加客户联系人 → 上传文档 → 设定截止日期
3. 工作中启动计时器 → 停止 → 生成时间条目 → 关联案件
4. 月末：筛选未计费条目 → 一键生成发票 → 发送给客户
5. 客户通过 Magic Link 进入门户 → 查看案件进展 → 下载文档 → 在线支付

**合伙人日常流程：**

1. 登录 → Dashboard 查看律所整体数据
2. 查看律师利用率 → 发现异常 → 跟进
3. 查看应收账款 → 催款决策
4. 导出月度报表

---

## 6. Functional Requirements (P0)

| ID | 模块 | 需求 | 优先级 |
|----|------|------|--------|
| F-01 | Auth | 邮箱注册/登录 + 2FA + 角色权限 | P0 |
| F-02 | Auth | 多租户律所隔离（Row Level Security） | P0 |
| F-03 | Case | 案件状态工作流 + 标签分类 | P0 |
| F-04 | Case | 联系人管理 + 案件关联 | P0 |
| F-05 | Time | 手动/计时器计时 + 案件关联 | P0 |
| F-06 | Time | 费率管理 + 发票生成 + PDF导出 | P0 |
| F-07 | Time | Stripe 在线支付 | P0 |
| F-08 | Doc | 文件上传/管理 + 案件关联 | P0 |
| F-09 | Doc | 文档模板 + 变量填充 | P0 |
| F-10 | Portal | 客户 Magic Link 登录 + 案件查看 | P0 |
| F-11 | Notify | 应用内通知 + 邮件通知 | P0 |
| F-12 | Dashboard | 律师/合伙人双视角 Dashboard | P0 |
| F-13 | Report | 利用率 + 营收 + AR 报表 | P0 |
| F-14 | Calendar | 截止日期确认 + 升级提醒 | P0 |
| F-15 | Mobile | 响应式适配 + PWA | P0 |
| F-16 | Search | 全文搜索（案件/联系人/文档） | P0 |

---

## 7. Minimal Data Model

```
firms (id, name, settings, plan, created_at)
users (id, firm_id, email, password_hash, role, 2fa_secret, avatar, created_at)
sessions (id, user_id, token, ip, expires_at)
contacts (id, firm_id, type[individual/org], name, email, phone, address, notes)
cases (id, firm_id, case_number, title, status, practice_area, description, assigned_to[], contacts[], opened_at, closed_at)
case_contacts (case_id, contact_id, role[client/opposing/witness/judge])
evidence_chain (id, case_id, ...) -- 保留 V1
conflict_checks (id, case_id, ...) -- 保留 V1
time_entries (id, case_id, user_id, date, duration_min, rate, description, billable, billed, invoice_id)
invoices (id, firm_id, case_id, contact_id, number, status[draft/sent/paid/overdue], total, issued_at, due_at, paid_at, stripe_payment_id)
invoice_lines (id, invoice_id, time_entry_id, description, amount)
documents (id, case_id, firm_id, name, path, size, mime_type, template_id, version, uploaded_by, created_at)
doc_templates (id, firm_id, name, content, variables[], category)
notifications (id, user_id, type, title, body, read, link, created_at)
deadlines (id, case_id, ...) -- 保留并增强 V1
deadline_acks (id, deadline_id, user_id, acked_at)
audit_logs (id, firm_id, user_id, action, entity_type, entity_id, metadata, created_at)
client_portal_tokens (id, contact_id, case_id, token, expires_at)
messages (id, case_id, sender_id, sender_type[user/client], body, created_at)
```

---

## 8. API / Integration Notes

- **认证：** NextAuth.js (Credentials + Magic Link provider)，JWT + refresh token
- **数据库：** PostgreSQL + Prisma ORM，Row Level Security 通过 Prisma middleware 实现
- **支付：** Stripe Checkout + Webhooks（订阅计费 + 客户发票支付）
- **文件存储：** 本地文件系统（初期）→ S3 兼容存储（后续）
- **邮件：** Resend API（通知邮件、发票发送、Magic Link）
- **搜索：** PostgreSQL 全文搜索（tsvector），后续可切换 Meilisearch
- **日历同步：** iCal 格式导出端点，Google Calendar API（OAuth）
- **PDF生成：** Puppeteer 或 @react-pdf/renderer（发票、报表）

---

## 9. Acceptance Criteria

1. 新用户可在 15 分钟内完成：注册 → 建案 → 计时 → 生成发票 全流程
2. 不同角色（Admin/Attorney/Paralegal）看到不同的数据和操作权限
3. 客户通过 Magic Link 只能看到被授权的案件信息
4. 截止日期到期前 72h/24h/1h 分别触发通知，逾期自动升级
5. 发票 PDF 包含完整的时间条目明细和律所信息
6. 在线支付完成后发票状态自动更新为 Paid
7. Dashboard 数据实时反映最新的案件、计费、营收状态
8. 移动端（375px 宽度）所有核心页面可正常使用
9. 全文搜索响应时间 < 500ms
10. 所有敏感操作记录审计日志

---

## 10. Delivery Plan

### M1 — 基础设施 + 认证 + 案件增强（Week 1）
- [ ] `prisma/schema.prisma` — 完整数据模型定义（firms, users, contacts, cases 等）
- [ ] `prisma/migrations/` — 数据库迁移
- [ ] `prisma/seed.ts` — 测试数据种子
- [ ] `lib/auth/` — NextAuth 配置 + 2FA + Magic Link
- [ ] `middleware.ts` — 路由保护 + 角色检查
- [ ] `app/auth/login/page.tsx` — 登录页
- [ ] `app/auth/register/page.tsx` — 注册页（创建律所）
- [ ] `app/auth/setup-2fa/page.tsx` — 2FA 设置
- [ ] `app/api/auth/[...nextauth]/route.ts` — Auth API
- [ ] `app/settings/team/page.tsx` — 团队管理（邀请、角色）
- [ ] `app/contacts/page.tsx` + `app/api/contacts/route.ts` — 联系人 CRUD
- [ ] `app/cases/` — 案件状态工作流 + 标签 + 联系人关联（增强现有页面）
- [ ] `components/ui/` — 通用 UI 组件库（Table, Modal, Form, Badge 等）
- **Exit Criteria：** 用户可注册/登录，Admin 可邀请成员并设角色，案件支持状态流转和联系人关联，API 全部通过集成测试

### M2 — 核心业务功能（Week 2-3）
- [ ] `app/time/page.tsx` — 时间跟踪页面（列表 + 计时器组件）
- [ ] `app/api/time-entries/route.ts` — 时间条目 CRUD API
- [ ] `components/timer/Timer.tsx` — 实时计时器组件
- [ ] `app/billing/page.tsx` — 发票管理页面
- [ ] `app/api/invoices/route.ts` — 发票 CRUD + 生成逻辑
- [ ] `lib/billing/invoice-pdf.ts` — PDF 生成
- [ ] `app/api/billing/stripe/route.ts` — Stripe 支付集成
- [ ] `app/api/billing/webhook/route.ts` — Stripe Webhook
- [ ] `app/documents/page.tsx` — 文档管理
- [ ] `app/api/documents/route.ts` — 文件上传/下载 API
- [ ] `app/documents/templates/page.tsx` — 模板管理
- [ ] `lib/documents/template-engine.ts` — 变量填充引擎
- [ ] `app/portal/[token]/page.tsx` — 客户门户页面
- [ ] `app/api/portal/route.ts` — Magic Link 生成 + 验证
- [ ] `app/portal/[token]/messages/page.tsx` — 客户消息
- **Exit Criteria：** 律师可完成计时→出发票→客户在线支付全流程，文档模板可自动填充案件数据，客户通过门户查看案件和文档

### M3 — Dashboard/报表/通知/移动端（Week 4）
- [ ] `app/dashboard/page.tsx` — 双视角 Dashboard
- [ ] `app/api/dashboard/stats/route.ts` — 统计数据 API
- [ ] `app/reports/page.tsx` — 报表中心
- [ ] `app/api/reports/route.ts` — 报表数据 API（利用率、营收、AR）
- [ ] `lib/reports/export.ts` — PDF/CSV 导出
- [ ] `lib/notifications/` — 通知服务（应用内 + 邮件）
- [ ] `app/api/notifications/route.ts` — 通知 API
- [ ] `components/notifications/NotificationCenter.tsx` — 通知中心组件
- [ ] `app/api/calendar/ical/route.ts` — iCal 导出
- [ ] `lib/calendar/google-sync.ts` — Google Calendar 同步
- [ ] `app/search/page.tsx` — 全文搜索
- [ ] `app/api/search/route.ts` — 搜索 API（PostgreSQL tsvector）
- [ ] 全站响应式适配 — 所有页面移动端优化
- [ ] `public/manifest.json` + `sw.js` — PWA 配置
- [ ] `lib/deadlines/escalation.ts` — 截止日期升级提醒 cron job
- **Exit Criteria：** Dashboard 展示实时数据，报表可导出 PDF/CSV，通知系统工作正常（应用内+邮件），移动端 375px 宽度全流程可用，PWA 可安装

---

## 11. Risks & Mitigations

| 风险 | 影响 | 缓解措施 |
|------|------|---------|
| 开发周期超出 4 周 | 延迟上线 | Module I（PWA）和报表 CSV 导出可推迟；M3 中非核心功能可拆到 V2.1 |
| Stripe 合规要求（律所信托账户） | 法律风险 | 初期仅做标准支付，IOLTA 标记为 beta 功能，附免责声明 |
| 数据迁移（V1 → V2） | 现有数据丢失 | 编写迁移脚本，V1 数据库结构映射到 V2 schema，保留 backward compatibility |
| 多租户数据泄露 | 安全事故 | Prisma middleware 强制 firm_id 过滤，关键 API 添加单元测试验证隔离 |
| 文件存储扩展性 | 磁盘空间不足 | 初期限制单文件 50MB、总容量 5GB/律所，后续迁移 S3 |

---

## 12. Chargeability Rationale

**定价策略：** $39/user/month（Starter）/ $69/user/month（Professional）/ $99/user/month（Enterprise），14 天免费试用。

**用户付费理由：** LegalFlow V2 覆盖了律所日常运营的完整工作流（案件→计时→计费→收款→报表），而定价显著低于 Clio（$49-139）和 PracticePanther（$59-129）。对于一个 10 人律所，每月节省的漏记工时收入（保守估计 $2,000+）远超软件订阅费用（$390-690/月），ROI 清晰可量化。市场打分验证：时间计费（31/40 BUILD）、截止日期管理（32/40 BUILD）、工作流自动化（30/40 BUILD）三大核心方向均达到 BUILD 评级，用户付费意愿确认度高。
