# 授权记录管理

## Why

现有的企业卡授权功能已完成授权/回收操作，但缺少对授权记录本身的管理视角。平台和代理无法审计"谁在什么时候授权了哪张卡给哪个企业"，也无法查看授权的完整生命周期（包括已回收的记录）。

## What Changes

- **新增授权记录列表接口**：支持分页、多条件筛选（企业、ICCID、授权人类型、状态、时间范围）
- **新增授权记录详情接口**：查看单条授权记录的完整信息（含关联的企业名、卡信息、授权人名）
- **新增修改授权备注接口**：支持平台和授权创建者修改授权备注
- **修复数据权限过滤**：`tb_enterprise_card_authorization` 表当前未正确应用数据权限过滤，需要添加特殊处理逻辑

## Capabilities

### New Capabilities

- `authorization-record`: 授权记录管理功能，包含列表查询、详情查看、备注修改

### Modified Capabilities

- `data-permission`: 数据权限过滤需要为授权记录表添加特殊处理规则（按 `enterprise.owner_shop_id` 过滤，且代理用户只能看自己店铺的数据，不含下级）

## Impact

### 代码变更

| 层级 | 文件 | 变更内容 |
|------|------|----------|
| Model/DTO | `internal/model/dto/authorization_dto.go` | 新增列表/详情/更新备注的请求响应结构 |
| Handler | `internal/handler/admin/authorization.go` | 新增授权记录管理 Handler |
| Service | `internal/service/enterprise_card/authorization_service.go` | 扩展授权记录查询和更新方法 |
| Store | `internal/store/postgres/enterprise_card_authorization_store.go` | 新增关联查询方法 |
| Routes | `internal/routes/authorization.go` | 新增授权记录路由组 |
| Callback | `pkg/gorm/callback.go` | 为授权记录表添加特殊的数据权限过滤规则 |

### API 变更

| HTTP | 路径 | 功能 |
|------|------|------|
| `GET` | `/api/admin/authorizations` | 授权记录列表（分页、筛选） |
| `GET` | `/api/admin/authorizations/:id` | 授权记录详情 |
| `PUT` | `/api/admin/authorizations/:id/remark` | 修改授权备注 |

### 权限规则

| 用户类型 | 列表/详情查看 | 修改备注 |
|----------|---------------|----------|
| 平台用户 | 所有记录 | 可修改任意记录 |
| 代理用户 | 仅自己店铺下企业的授权记录（不含下级店铺） | 仅可见范围内的记录 |

### 数据权限过滤

授权记录表 `tb_enterprise_card_authorization` 需要特殊处理：
- 表中有 `enterprise_id` 字段，但这是被授权的企业，不是操作者归属
- 需要通过 `enterprise.owner_shop_id` 关联判断企业归属
- 代理用户过滤条件：`WHERE enterprise_id IN (SELECT id FROM tb_enterprise WHERE owner_shop_id = 当前店铺ID)`
