## Why

当前登录接口只返回扁平的权限码列表 `permissions: []`，前端需要额外处理才能渲染侧边栏菜单（需要树形结构）和控制按钮显示（需要按钮权限列表）。这导致前端需要额外请求菜单接口或在本地维护菜单配置，增加了复杂度和请求次数。通过在登录时直接返回分类好的菜单树和按钮权限，前端可以一次性获取所有必要数据并存储到 localStorage，无需二次请求，简化前端实现并提升用户体验。

## What Changes

- 在 `LoginResponse` DTO 中新增两个字段：
  - `menus: []MenuNode` - 菜单树（树形结构）
  - `buttons: []string` - 按钮权限码列表（扁平）
- 新增 `MenuNode` DTO 结构体，包含 `id`, `perm_code`, `name`, `url`, `sort`, `children` 字段
- 修改 `auth.Service.Login()` 方法，新增权限分类逻辑：
  - 基于 `perm_type` 字段分类（1=菜单权限，2=按钮权限）
  - 根据 `device` 参数过滤平台（`platform=web/h5/all`）
  - 构建菜单树（基于 `parent_id` 字段的递归结构）
  - 超级管理员返回所有菜单和按钮
- 保留原有 `permissions` 字段（向后兼容，包含所有权限码）
- `GetMe` 接口保持不变（不返回菜单，避免频繁查询）

## Capabilities

### New Capabilities

- `login-menu-button-response`: 登录接口返回菜单树和按钮权限，支持前端直接使用无需二次处理

### Modified Capabilities

（无现有能力被修改，这是新增功能）

## Impact

**修改的文件**：
- `internal/model/dto/auth_dto.go` - 新增 MenuNode 结构体，修改 LoginResponse 结构体
- `internal/service/auth/service.go` - 修改 Login() 方法，新增权限分类和菜单树构建逻辑

**API 变更**（向后兼容）：
- `POST /api/admin/login` - 响应体增加 `menus` 和 `buttons` 字段
- `POST /api/h5/login` - 响应体增加 `menus` 和 `buttons` 字段
- `GET /api/admin/me` - 保持不变（不返回菜单）
- `GET /api/h5/me` - 保持不变（不返回菜单）

**数据库影响**：
- 无需修改数据库 schema（复用现有 `tb_permission` 表的 `perm_type`, `parent_id`, `platform` 字段）

**前端影响**：
- 可选升级：前端可以选择使用新的 `menus` 和 `buttons` 字段，也可以继续使用 `permissions` 字段（向后兼容）
- 推荐使用方式：登录后将 `menus` 和 `buttons` 存储到 localStorage，页面刷新时从本地读取

**性能影响**：
- 登录响应体增大（预计增加 5-10KB，取决于权限数量）
- 菜单树构建计算量增加（O(n) 复杂度，n 为权限数量，通常 < 100）
- 不影响 GetMe 接口性能（未修改）
