---
name: beauty-salon-member-appointment
description: "美容院会员与预约：档案、储值、次卡、预约、技师推荐、完成服务（联动扣耗材与员工业绩）。触发：新客开卡/新客建档、查剩余次数、预约/改期/取消、安排技师（如“明天下午3点做面部护理”）。"
---

# 会员与预约管理

```bash
cd "{baseDir}"
set PYTHONPATH=%CD%\src
python -m member_appt_cli <子命令> ...
```

默认库：`%USERPROFILE%\.config\beauty-salon-member-appointment\member.sqlite3`（`BEAUTY_MEMBER_DB_PATH` 可覆盖）。

## 完成服务编排 `appt-complete`

本仓库已升级为 **单库 `beauty.sqlite3`**：`appt-complete` 在同一个 SQLite 事务里完成扣款、扣库存、记业绩与更新预约状态；任一环节失败会整体回滚，不再出现“扣款成功但库存/业绩失败”的半成功状态。

## 内部子命令（供其他 skill）

- `card-count-by-service --service <名> --json`
- `appt-count-by-staff --staff-id <id> --status scheduled --json`

## 示例

```bash
python -m member_appt_cli member-add --name "王芳" --phone "13800138000"
python -m member_appt_cli balance-recharge --member-id M001 --amount 1000 --bonus 150
python -m member_appt_cli appt-create --member-id M001 --project "面部护理" --technician-id S001 --datetime "2024-03-21 15:00"
python -m member_appt_cli appt-complete --appt-id A001 --pay stored_value
```

## 环境变量

- `BEAUTY_DB_PATH`：单库路径（推荐）。默认：`%USERPROFILE%\.config\beauty-salon-suite\beauty.sqlite3`
