# 今日领券完成状态(completed-today 族) > 所属:Coupon 组(前缀 `/api/v1/coupon`) | 鉴权:无(按 device_id 判断) | [← 返回 API 索引](../README.md) --- ## GET /completed-today — 今天是否已完成整轮领券 判断这台设备今天是否跑到 done 帧。已完成 → 首页「去领取」卡置灰。 ### 入参(query) | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `device_id` | string | ✅ | 设备 ID(需与领券循环上报的一致) | Mock 请求: ``` GET /api/v1/coupon/completed-today?device_id=android_abc123def456 ``` ### 出参 响应 `200`:`CouponCompletedTodayOut` | 字段 | 类型 | 说明 | |---|---|---| | `completed` | bool | 今天是否已跑完整轮 | Mock 出参: ```json {"completed": true} ``` --- ## POST /completed-today/reset — 重置今日已完成 删这台设备今天的 completion → `has_completed_today` 变 false,首页「去领取」卡恢复可点。开发设置用。 ### 入参 | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `device_id` | string | ✅ | 设备 ID | | `package` | string | ❌ | App 包名(默认 "") | | `user_id` | int \| null | ❌ | 登录用户 ID | Mock 入参: ```json { "device_id": "android_abc123def456" } ``` ### 出参 ```json {"ok": true} ``` --- ## 说明 - 判断维度 `device_id`(客户端两端都用 ANDROID_ID) - 用户决策 A 方案:到 done 即算完成,不管单券成败 - MVP 不鉴权