platform-assistant/apps/api/AGENTS.md
Sisyphus afac18e843 feat(F002): W26 + W29.x + W30 + W31 平台助手全部改动首次 commit
- W26: NestJS API + Next.js Web + Prisma + SQLite scaffold
- W26: Lead 模型 + Crawler + 询价发布助手 (线索池 + 一键发布)
- W29.x: MCP 集成 (Integration 模型 + connectMcp + publish_rfq 5 工具端到端跑通)
- W30: 3 字段补充 (notes / quotationType / quotationDemand)
- W31 P1: 自动填 enterpriseId / userId (Prisma companyUserId 字段 + get_app_identity tool + lead.service.ts publishArgs)
- W31: detail 详情页 + admin UI 集成管理 (OpenAppListView + AuditLogListView)

关联: ~/Documents/02-平台开发/产品开发/F002-W31-交接文档.md
GIT-AUDIT-REPORT-2026-06-24.md
2026-06-24 11:07:11 +08:00

56 lines
2.0 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.

# apps/api — NestJS 10 后端
**生成:** 2026-06-05
**分支:** main
## OVERVIEW
NestJS 10 后端,Prisma ORM + SQLite,提供 RESTful API。端口 4000。JWT 认证。
## STRUCTURE
```
api/
├── src/
│ ├── admin/ # 管理后台(租户/用户/配置/计划)
│ ├── auth/ # JWT + Passport 认证
│ ├── audit-log/ # 审计日志
│ ├── comparison/ # 比价模块
│ ├── crawler/ # 采集器调度 + execSync 调用脚本
│ ├── image/ # 三阶段生图(图库→Bing→AI)
│ ├── inquiry/ # 询价
│ ├── lead/ # 线索(核心,评分/状态流转/跟进)
│ ├── product/ # 商品
│ ├── reports/ # 报表
│ ├── rules/ # 规则中心
│ ├── users/ # 用户管理
│ ├── prisma/ # Prisma 服务封装
│ ├── common/ # 公共装饰器/过滤器
│ ├── app.module.ts # 根模块(导入所有子模块)
│ └── main.ts # 启动入口
└── prisma/
└── schema.prisma # 数据模型(~15 个模型)
```
## WHERE TO LOOK
| 任务 | 位置 | Notes |
|------|------|-------|
| 新增 API 端点 | `src/xxx/xxx.controller.ts` | ValidationPipe 全局自动转换 |
| 修改数据库模型 | `prisma/schema.prisma` | 改后必须 `npm run db:init` |
| 采集器调度 | `src/crawler/` | execSync 调用 scripts/tender-fetcher/ |
| 图片生成 | `src/image/image.service.ts` | 三阶段流水线 |
## CONVENTIONS
- Prisma 变更三步:generate → migrate → seed(`db:init` 一站式)
- 采集器脚本路径:`scripts/tender-fetcher/`
- 无测试框架
- 端口 4000,CORS 白名单 localhost:3000/3001 + direv.cloud
- 静态文件 `/uploads` → `public/uploads`
## ANTI-PATTERNS
- 不要在代码中硬编码脚本路径以外的文件路径
- 采集器 state 文件不要手动删除(中电建用 `systemId_招采公告` 作 key)