# AutoRepair Quote v1.0 — 交付说明（2026-10-28）

需求来源：`~/workspace/app-demand-shortlist-v1.md` 第 1 名「汽修报价单（创意库 i004）」

## 产物

- APK：`~/workspace/your_files/AutoRepairQuote-v1.0.apk`（15.6 MB，debug 签名，可直接安装）
- 源码：`~/workspace/autorepair-quote-android/`
- 包名：`com.autorepairquote.app`
- 版本：versionCode 1 / versionName 1.0
- 系统要求：Android 7.0（minSdk 24）及以上，targetSdk 34
- 技术栈：Kotlin + Jetpack Compose 纯原生（无 WebView）；本地 SQLite 存储（SQLiteOpenHelper）；零联网、无账号（APK 未申请 INTERNET 权限）

## 已实现功能（第一版只做的 2 个功能，已全部落地）

**1. 报价单生成（配件 + 工时分项）**
- 新建/编辑报价单：客户（下拉选择或快速新建，输入新名字保存时自动建档）、车辆（可点选客户名下车辆自动填充）、状态（Draft / Sent / Approved）
- 配件行：名称、数量、单价，自动算行金额；工时行：工作描述、小时数、时费（默认带出设置里的时费），自动算行金额
- 税率（%）、备注；实时汇总：配件小计、工时小计、税额、总计
- 报价单自动编号（Q-1001 起递增，删除不重号）
- 详情页一键导出 **PDF**（A4 版式）或 **PNG 图片**，经系统分享面板发送给客户（WhatsApp/邮件等）
- 详情页可「Duplicate as new quote」整单复制复用

**2. 客户与车辆档案**
- 客户：增删改查（姓名、电话、邮箱、备注）；报价里输新客户名会自动建档
- 车辆：每个客户可挂多辆车（年份、品牌、型号、车牌、VIN），报价时一键选用
- 客户详情页显示该客户的全部历史报价，点任意一张直接打开/导出
- 删除客户时历史报价保留姓名快照，仍可读（不会变空白）

**设置页（支撑功能）**
- 店名、电话、邮箱、地址（印在每张报价单上）
- 货币：20 种币种可选（USD / EUR / GBP / CNY / JPY / INR / BRL / MXN 等），全局生效
- 默认工时费、默认税率（新建报价单时带出）

## 未做事项（按第一版范围主动砍掉）

- 订阅/付费墙（需求文档的变现是后续版本的事）
- 云同步、账号、多员工、在线发送（短信/邮件直发）
- 报价单模板库、行业模板（搬家/开锁等）——需求文档明确警告不可换皮克隆，未来若做须做成同 App 内模板
- 多语言 UI（目前英文优先，符合全球 Play 定位）
- release 正式签名包（上架前需生成签名并出 AAB）

## 已知问题

- PDF 固定单页 A4：行数特别多（约 35 行以上）的报价单，后半部分可能被截断；PNG 导出无此问题（长图）
- 构建有一条图标弃用警告（ReceiptLong 图标），不影响功能
- 未做真机/模拟器实测（构建环境无模拟器），已通过完整编译打包与 APK 结构校验；首次真机打开建议验一遍：新建报价 → 导出 PDF → 分享

## 重新构建

```bash
cd ~/workspace/autorepair-quote-android
# 需先确保代理 shim 在跑：python3 ~/workspace/android-sdk/proxy-shim.py（监听 127.0.0.1:18888）
JAVA_HOME=~/workspace/jdk-17 GRADLE_USER_HOME=/home/hatch/.gradle \
_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true ./gradlew assembleDebug
```
