30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
## Context
|
||
|
||
C3 后端 record/abnormal/order.today 已就绪。护理员 APP(Flutter)是录入主战场。技术栈 Riverpod+dio+sqflite+go_router。
|
||
|
||
## Goals / Non-Goals
|
||
|
||
**Goals:** 登录、M1 今日任务、M2 服务执行、拍照分档、异常上报、扑空、离线队列。
|
||
|
||
**Non-Goals:** 家属端、质控/派单、结算金额。
|
||
|
||
## Decisions
|
||
|
||
1. 技术栈 Riverpod+dio+sqflite+go_router,token 落 shared_preferences。
|
||
2. feature-first 目录:core/(api/db/router/theme/auth)+ features/{auth,today,service,abnormal}/。
|
||
3. API base 可配置(--dart-define);统一响应 {code,message,data};token Authorization: Bearer。
|
||
4. 离线队列 sqflite + client_md5 + POST /record/offline/sync。
|
||
5. 签到/签退时间不传(服务器取时);定位失败不阻塞;必拍未拍 3001 双保险(前端签退前置 + 后端硬拒)。
|
||
|
||
## 数据流
|
||
|
||
登录 → GET /order/today → POST /record/checkin → item/save → photo/upload → checkout;POST /abnormal(异常/扑空);离线 sync。
|
||
|
||
## Risks
|
||
|
||
离线幂等(client_md5);必拍未拍双保险;照片压缩 ≤500KB。
|
||
|
||
## 验收
|
||
|
||
nurse01 登录 → 今日任务 → 签到勾项目拍照签退 → 留痕 submitted;异常/扑空落库;断网补传。
|