# 后端 feat 通知 — 餐厅 restaurant 加 icon_svg, 与 3 类对齐

**日期**: 2026-05-12
**类型**: 后端补齐 (PR #2106)
**模块**: 资源服务 — 餐厅
**通知**: @mmg
**前端是否需改动**: **需要** — 餐厅编辑弹窗加图标上传, 与景区/活动/服务统一
**严重性**: P3

---

## 背景

PR #2100 只给景区/活动/服务 3 类加了 icon_svg, 漏了餐厅。本次补齐, 4 类资源对齐。

## API 变化

餐厅 admin CRUD: `POST /admin/restaurant`, `PUT /admin/restaurant/{id}`, `GET /admin/restaurant/items`, `GET /admin/restaurant/{id}`

**请求体新增可选字段**: `iconSvg`
**响应体新增字段**: `iconSvg` (列表 + 详情都返回)

资源端 Internal Feign `GET /internal/mp/resource/batch-details` Restaurant 的 ResourceDetailDTO 也带 iconSvg 了。

## 节点选餐厅时的默认带过去

`nodeType=RESTAURANT` + 不传 `emojiIcon` + 资源 iconSvg 非空 → 节点 emojiIcon 自动复制餐厅 iconSvg (复用 PR #2100 的 `ProductItineraryService.convertNode` 逻辑, 4 类资源全覆盖)。

## 测试服实测

部署版本: dev 最新 (PR #2106)

| 接口 | iconSvg 字段返回 |
|------|------------------|
| `GET /admin/scenic/spots` | ✅ |
| `GET /admin/activity/items` | ✅ |
| `GET /admin/service/items` | ✅ |
| `GET /admin/restaurant/items` | ✅ |

`flyway_schema_history.V20260512.005 success=1`, restaurant 表 icon_svg 列已建。

## 前端 mmg 行动项

餐厅编辑弹窗加"上传 SVG 图标"入口, 字段名 `iconSvg`, 与景区/活动/服务 3 个弹窗的实现方式保持一致。
