# Backend Design: ECR-041 Banner Write | Field | Value | |-------|-------| | ID | BD-2026-041 | | Status | **Approved** | | Coding | **Authorized · Implemented · Closed with ECR-041** | | Level | L2 | | Migration | `000051_ops_banner_write` | ## Backend Change Boundary ```text Domain: Banner (write + C-end read) App: AdminHandler / HomeHandler → admin.Service / home → AdminRepo API: POST /api/v1/admin/cms/banners PUT /api/v1/admin/cms/banners/{id} GET /api/v1/home/banners?placement=home Permission: admin.cms.write (additive); keep admin.cms.read Audit: admin_audit_logs on POST/PUT Table: reuse ops_banners (ECR-024) ``` ## Out of boundary FeedSlot 写 · ScheduledPublication 写 · UGC · 真支付 · soft-delete · Crisis/Handoff/ContentSafety 写 · 新 RBAC 子系统 ## Rollback 1. migration down(撤权限种子) 2. 移除写路由与 C 端读取路由 3. H5 回退静态 `homeFeeds` ## Refs Spec `ops-banner-write.md` · ECR-041 · WRITE_WAVE_AUTHORIZATION · predecessor BD-2026-024