# Kylin Community

智慧社区服务系统核心业务扩展包 — 提供居民管理、物业服务、社区互动等核心领域模型。

## 功能模块

| 模块 | 说明 | 核心模型 |
|------|------|----------|
| 居民管理 | 居民信息登记、家庭成员管理、特殊群体标识 | Resident |
| 房屋管理 | 房屋信息维护、入住/退租记录、业主关联 | House |
| 报修服务 | 报修申请、派单、维修、验收、评价 | Repair |
| 缴费管理 | 物业费、水电费等缴费记录与统计 | Payment |
| 投诉建议 | 投诉提交、受理、处理、反馈 | Complaint |
| 社区活动 | 活动发布、报名、签到、总结 | Activity |
| 邻里互助 | 求助发布、应答、完成评价 | Help |
| 公告通知 | 社区公告发布、定时推送 | Notice |

## 安装

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

## 配置说明

### 个人信息保护配置

```php
// config/kylin-community.php
return [
    'privacy' => [
        'encrypted_fields' => [
            'id_card',      // 身份证号
            'phone',        // 手机号
            'address',      // 家庭住址
            'emergency_contact', // 紧急联系人
        ],
        'consent_required' => true,        // 需要用户同意
        'data_retention_months' => 24,     // 数据保留月数
        'anonymize_on_delete' => true,     // 删除时匿名化
    ],
    'special_groups' => [
        'elderly',    // 老年人
        'disabled',   // 残疾人
        'single',     // 独居
        'low_income', // 低收入
    ],
    'complaint_types' => [
        'noise',        // 噪音投诉
        'sanitation',   // 卫生投诉
        'parking',      // 停车投诉
        'security',     // 安全投诉
        'property',     // 物业投诉
        'other',        // 其他
    ],
];
```

## 使用示例

### 居民管理

```php
use Kylin\Community\Models\Resident;

// 登记居民
$resident = Resident::create([
    'name'    => '张三',
    'phone'   => '138****1234',  // 加密存储
    'id_card' => '110101****1234', // 加密存储
    'house_id'=> 1,
]);

// 查询特殊群体
$elderly = Resident::where('special_group', 'elderly')->get();
```

### 报修服务

```php
use Kylin\Community\Models\Repair;

// 提交报修
$repair = Repair::create([
    'resident_id' => auth()->id(),
    'type'        => 'plumbing', // 管道维修
    'description' => '厨房水龙头漏水',
    'urgency'     => 'normal',    // normal / urgent
]);

// 派单
$repair->assignTo($workerId);
```

### 投诉建议

```php
use Kylin\Community\Models\Complaint;

$complaint = Complaint::create([
    'resident_id' => auth()->id(),
    'type'        => 'noise',
    'content'     => '楼上装修噪音过大',
    'is_anonymous'=> false,  // 可选择匿名
]);
```

## 数据库表

| 表名 | 说明 |
|------|------|
| `kc_community_residents` | 居民信息表（敏感字段加密） |
| `kc_community_houses` | 房屋信息表 |
| `kc_community_repairs` | 报修记录表 |
| `kc_community_payments` | 缴费记录表 |
| `kc_community_complaints` | 投诉建议表 |
| `kc_community_activities` | 社区活动表 |
| `kc_community_helps` | 邻里互助表 |
| `kc_community_notices` | 公告通知表 |

## 法律合规

详见 [LEGAL.md](./LEGAL.md)，涵盖：
- 《中华人民共和国个人信息保护法》(2021.11.1)
- 《中华人民共和国网络安全法》(2017.6.1)
- 《中华人民共和国民法典》(2021.1.1) — 隐私权
- 《物业管理条例》(2018.3.19 修订)
- 《中华人民共和国数据安全法》(2021.9.1)

## 依赖

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

## 许可证

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