90dcc58c33
契约 UploadInitRequest 加 force(bool,仅 owner/admin 跳过查重)。 服务端 init 事务前置查重:同 albumId + uploaderId + bytes 的非 deleted 照片已存在 → 409 PHOTO_DUPLICATE。photos 表加 idx_photos_dedup 索引 (迁移 20260928120000)。 App UploadInitRequest 加 force 字段 + toJson 序列化。 本地查重(层 1)+ 服务端查重(层 2)双层防线到位。 API typecheck ✅ · app analyze ✅ · 397/397 ✅ · contract lint ✅ Co-Authored-By: Claude Code <noreply@anthropic.com>
5 lines
229 B
SQL
5 lines
229 B
SQL
-- P0-1 层 2:服务端查重索引(同相册+上传者+字节数匹配)
|
||
-- 命中即 409 PHOTO_DUPLICATE(force=true 且 owner/admin 可跳过)。
|
||
CREATE INDEX idx_photos_dedup
|
||
ON photos (albumId, uploaderId, bytes);
|