# Kylin Fitness

Kylin 智慧健身会所系统扩展包 — 课程管理、会员管理、私教管理、体测记录。

## 功能特性

- **课程管理**：课程发布、预约、签到、评价
- **会员管理**：注册、会员卡、预付费存管、退费、隐私管理
- **私教管理**：教练资质、预约排班、训练计划、训练记录
- **体测记录**：设备对接、数据加密、趋势图、报告导出

## 行业标准合规

- GB/T 31267-2014 全民健身服务标准
- GB/T 38424-2020 健身场所建设与管理规范
- GB/T 38423-2020 健身教练职业标准
- GY/T 348-2021 场馆信息化标准
- DB11/T 2277-2024 健身房服务规范（预付费存管/退费）
- GB/T 22239-2019 网络安全等级保护
- GB/T 35273-2020 个人信息保护
- GB/T 45574-2025 敏感信息处理

## 安装

```bash
composer require kylin/fitness
php artisan vendor:publish --tag=fitness-config
php artisan vendor:publish --tag=fitness-migrations
php artisan migrate
php artisan kylin:fitness-install
```

## 配置说明

```php
// config/fitness.php
return [
    'booking_cancel_hours_before' => 2,     // 课程预约取消需提前小时数
    'refund_service_fee_rate' => 5,         // 退费手续费率（%）
    'certification_expire_remind_days' => 30, // 教练资质到期提醒天数
    'fitness_test_encryption' => true,      // 体测数据加密
    'max_booking_days_ahead' => 30,         // 课程最大预约提前天数
];
```

## 使用示例

### 课程管理

```php
use Kylin\Fitness\Facades\KylinFitness;

// 发布课程
$course = KylinFitness::createCourse([
    'name' => '瑜伽基础课',
    'coach_id' => 1,
    'schedule' => '每周一三五 19:00',
    'capacity' => 20,
    'price' => 200,
]);

// 预约课程
$booking = KylinFitness::bookCourse($course->id, $memberId);

// 取消预约（需提前 2 小时）
$booking = KylinFitness::cancelBooking($booking->id);
```

### 会员管理

```php
// 创建会员
$member = KylinFitness::createMember([
    'name' => '张三',
    'phone' => '13800138000',
    'membership_type' => 'annual',
]);

// 会员退费
$refund = KylinFitness::refund($member->id, [
    'amount' => 2000,
    'reason' => '个人原因',
]);
```

### 体测记录

```php
// 记录体测数据（自动加密）
$test = KylinFitness::recordTest($member->id, [
    'weight' => 70.5,
    'body_fat' => 18.2,
    'muscle_mass' => 32.1,
    'test_date' => '2026-06-19',
]);
```

### API 路由

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/kylin/fitness/courses | 课程列表 |
| POST | /api/kylin/fitness/courses | 创建课程 |
| POST | /api/kylin/fitness/courses/{id}/book | 预约课程 |
| DELETE | /api/kylin/fitness/bookings/{id} | 取消预约 |
| GET | /api/kylin/fitness/members | 会员列表 |
| POST | /api/kylin/fitness/members | 创建会员 |
| POST | /api/kylin/fitness/members/{id}/refund | 会员退费 |
| POST | /api/kylin/fitness/tests | 记录体测数据 |
| GET | /api/kylin/fitness/tests/{memberId} | 查看体测历史 |

## 法律合规

详见 [LEGAL.md](./LEGAL.md)，涵盖：
- 《中华人民共和国体育法》(2023.1.1 修订)
- 《中华人民共和国消费者权益保护法》(2014.3.15)
- 《中华人民共和国个人信息保护法》(2021.11.1) — 健康数据敏感信息保护
- 《全民健身条例》(2016.2.6 修订)

## 依赖

- PHP ^8.5
- Laravel ^13.0
- kylin/core

## 许可证

私有软件，未经授权禁止使用。