Files
dukang/server/dukang-api/AGENTS.md
T
jacy 3166467518 feat(ops): v4.0.2 活动图模板、合伙人选择持久化与用户管理主图
HQ 上传底图与码栏;合伙人单选写入 partner_account.activity_poster_id,用户管理下次登录仍显示同一张图。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 21:36:43 +08:00

2.6 KiB
Raw Blame History

杜康好客 · 后端 AGENTS.md

父级:../AGENTS.md · API 契约:V2 手册 §六 · 表结构:§五

范围

本目录 = 唯一后端进程 dukang-apiNestJS 10 + Prisma 5)。

模块 → 表 OWNER(写权限)

Module 主要 Prisma Model 负责人
iam User, UserAddress, … jacy-dukang
catalog CommonCity, CommonProductItem, … jacy-dukang
store Store, Partner 刘景尧
trade Order, OrderDelivery jacy-dukang
benefit BenefitCoupon jacy-dukang
redeem RedeemRecord, StoreRating 刘景尧
settlement StorePayout, PartnerBill jacy-dukang
ops 只读聚合、ActivityPoster jacy-dukang
analytics LogUserAnalytics jacy-dukang
common CommonResource, CommonEvent, CommonTicket jacy-dukang
integrations 无表 jacy-dukang

log_*LogThirdParty 由写入方 Module 负责(支付→trade,短信→iam/notify)。

允许依赖(摘要)

trade → catalog, store, benefit, iam, notify, common, domain
benefit → iam, common, domain(禁止 → trade/redeem
redeem → benefit, store, settlement, iam, notify, common, domain
store → catalog, iam, common, domain(禁止 → trade/benefit
settlement → trade, redeem, store, catalog, iam, notify, common, domain
callbacks → trade, benefit, settlement, common(薄层,无业务表)
jobs → trade, settlement, notify, common

完整矩阵见 V2 手册 §四 §2.5.2。

新接口 checklist

  1. OWNER 模块dto/*.controller.ts*.service.ts
  2. Service 只写本模块表;跨域 inject exported Service
  3. GuardJwtAuthGuard + actorType 校验(User/Store/Partner/HQ
  4. 响应 { code: 0, message: 'ok', data }ResponseInterceptor
  5. DTO/枚举同步 packages/shared-types
  6. preV1 Mock:改 integrations/*,不在 Controller 散落 if (mock)

Mock 集成(preV1

integrations/
├── sms/sms.mock.provider.ts
├── pay/pay.mock.provider.ts
└── delivery/delivery.mock.provider.ts

开关见 packages/shared-types/src/config.tsMOCK_SMS, MOCK_PAY, MOCK_DELIVERY_AUTO)。

常用命令

pnpm dev:api
pnpm db:validate
pnpm db:seed
cd server/dukang-api && npx prisma studio

禁止

  • redeemprisma.order.update → 调 TradeService
  • benefit 里 inject TradeService / RedeemService
  • 多个 Module 注册同一 callback 路由
  • 复制起购/核销规则到 Controller → 用 packages/domain