{"message":"birdconsole-server","endpoints":{"upload":"POST /api/images/upload - 上传图片(名称唯一，重名409)","uploadBatch":"POST /api/images/upload/batch - 批量上传(字段 image 可多文件；重名失败不影响其它)","getImages":"GET /api/images/list - 获取图片列表(?limit=50&offset=0，limit最大200)","deleteImage":"DELETE /api/images/delete/:id - 删除图片","addWine":"POST /api/wines/add - 新增酒信息","batchImportWines":"POST /api/wines/batch-import - 批量导入酒信息","downloadWineImportTemplate":"GET /api/wines/batch-import/template - 下载批量导入JSON模板","getWines":"GET /api/wines/list - 获取酒信息列表","updateWine":"PUT /api/wines/update/:id - 更新酒信息","deleteWine":"DELETE /api/wines/delete/:id - 删除酒信息","addWineList":"POST /api/wine-lists/add - 新增酒单","getWineLists":"GET /api/wine-lists/list - 获取酒单列表","getWineListDetail":"GET /api/wine-lists/detail/:id - 获取酒单详情（包含所有酒）","getPublishedWineList":"GET /api/wine-lists/published - 用户端获取当前已发布酒单","publishWineList":"PUT /api/wine-lists/:id/publish - 发布酒单到用户端（仅保留当前一份已发布）","updateWineList":"PUT /api/wine-lists/update/:id - 更新酒单","deleteWineList":"DELETE /api/wine-lists/delete/:id - 删除酒单","addWineToList":"POST /api/wine-lists/:listId/add-wine - 向酒单添加酒","removeWineFromList":"DELETE /api/wine-lists/:listId/remove-wine/:wineId - 从酒单移除酒","updateWineSort":"PUT /api/wine-lists/:listId/sort-wine - 更新酒在酒单中的排序","createTaskList":"POST /api/admin/tasks/task-lists/create - 创建任务列表(模板)","listTaskLists":"GET /api/admin/tasks/task-lists/list - 任务列表(模板)查询","taskListDetail":"GET /api/admin/tasks/task-lists/:id/detail - 任务列表详情(任务项+当前派遣人员)","addTaskItem":"POST /api/admin/tasks/task-lists/:id/items - 新增模板任务项","batchAddTaskItems":"POST /api/admin/tasks/task-lists/:id/items/batch - 批量新增模板任务项","updateTaskItem":"PUT /api/admin/tasks/task-list-items/:itemId/update - 更新模板任务项","deleteTaskItem":"DELETE /api/admin/tasks/task-list-items/:itemId/delete - 删除模板任务项","assignTaskListToUser":"PUT /api/admin/tasks/users/:userId/assignment - 派遣任务列表给员工(覆盖式，一人一单)","assignTaskListToUsersBatch":"POST /api/admin/tasks/assignments/batch - 批量派遣任务列表给多名员工","generateDailyTasks":"POST /api/admin/tasks/daily-tasks/generate - 手动补生成每日任务(可选)","syncTaskItems":"POST /api/admin/tasks/daily-task-sets/:setId/sync-items - 为已生成的任务添加新任务项(同步模板新增项)","taskStatistics":"GET /api/admin/tasks/statistics - 历史任务统计(支持userId、日期范围、分页)","getTaskConfig":"GET /api/admin/tasks/config - 获取任务系统配置","updateTaskConfig":"PUT /api/admin/tasks/config/:key - 更新任务系统配置(如daily_task_generation_time，需重启生效)","myTasks":"GET /api/me/tasks - 获取我的当天任务(04:00分界)","myTasksByDate":"GET /api/me/tasks?date=YYYY-MM-DD - 获取我的历史某天任务","completeTask":"PUT /api/me/tasks/:taskId/complete - 完成某条任务","myRestDays":"GET /api/me/rest-days - 获取我的休息日(1-7周一到周日)","setMyRestDays":"PUT /api/me/rest-days - 设置我的休息日(body: { restDays: [1,6,7] })","getUserRestDays":"GET /api/admin/tasks/users/:userId/rest-days - 管理端获取员工休息日","setUserRestDays":"PUT /api/admin/tasks/users/:userId/rest-days - 管理端设置员工休息日(body: { restDays: [1,6,7] })","updateUser":"PUT /api/admin/tasks/users/:userId - 修改用户信息(仅管理员)(body: name?, identity?, restDays?, shiftId?, feishuUserId?)","deleteUser":"DELETE /api/admin/tasks/users/:userId - 删除员工账号(仅管理员)","reminderList":"GET /api/admin/reminders/list - 获取提醒事项列表(含每员工独立开始日期assignments)","reminderCreate":"POST /api/admin/reminders - 新增提醒事项(body: name, cycleDays, assignments?:[{userId,startDate?}])","reminderSetAssignments":"PUT /api/admin/reminders/:id/assignments - 设置提醒人员/修改名称与周期(body: name?, cycleDays?, assignments?)","reminderDelete":"DELETE /api/admin/reminders/:id - 删除提醒事项","reminderUserCalendar":"GET /api/admin/reminders/users/:userId/reminders?month=YYYY-MM - 管理端获取某员工提醒(按日期划分)","myReminders":"GET /api/me/reminders?month=YYYY-MM - 获取我的提醒事项(按日期划分，不传month为当月剩余)","myReminderComplete":"PUT /api/me/reminders/complete - 标记某日某提醒完成(body: reminderItemId, date)","shiftList":"GET /api/admin/shifts/list - 班次列表","shiftCreate":"POST /api/admin/shifts - 新增班次(body: name)","shiftUpdate":"PUT /api/admin/shifts/:id - 修改班次名称(body: name)","shiftDelete":"DELETE /api/admin/shifts/:id - 删除班次(有提醒事项绑定时不可删)","storeRestDaysGet":"GET /api/admin/store/rest-days - 获取店休日(1-7周一到周日)","storeRestDaysSet":"PUT /api/admin/store/rest-days - 设置店休日(body: { restDays: [1,4] })","reminderV2List":"GET /api/admin/reminders-v2/list - v2提醒事项列表","reminderV2Create":"POST /api/admin/reminders-v2 - 新增v2提醒(body: name, content?, cycleDays, startDate, shiftId)","reminderV2Detail":"GET /api/admin/reminders-v2/:id - v2提醒详情","reminderV2Update":"PUT /api/admin/reminders-v2/:id - 修改v2提醒(body: name?, content?, cycleDays?, startDate?, shiftId?)","reminderV2Delete":"DELETE /api/admin/reminders-v2/:id - 删除v2提醒(级联删除完成记录)","reminderV2Calendar":"GET /api/admin/reminders-v2/calendar?date=YYYY-MM-DD|month=YYYY-MM - 按发生日展开(含负责人与完成人)","myRemindersV2":"GET /api/me/reminders-v2 - 全员可见当天提醒; ?date=YYYY-MM-DD 或 ?month=YYYY-MM","myReminderV2Complete":"PUT /api/me/reminders-v2/complete - 提交完成(body: reminderItemId, date)，每个发生日仅一次","myReminderV2Uncomplete":"PUT /api/me/reminders-v2/uncomplete - 撤销当天完成(body: reminderItemId, date)，任意员工可撤","pushSend":"POST /api/admin/push - 推送消息(body: title, content；记为管理员推送)","pushTestSystem":"POST /api/admin/push/test-system - 测试系统推送(body: title?, content?, shiftId?, jobKey=daily-summary?；不计入今日已处理)","pushList":"GET /api/admin/push/list - 推送记录列表(?source=admin|system&limit&offset)","pushShiftJobs":"GET /api/admin/push/shift-jobs - 系统自动推送任务列表(班次任务+昨日汇总)"}}