6cf7eb2294
- Added new API endpoint `GET /api/v1/smoke/next_smoke_time` to provide AI-generated suggestions for the next smoking time based on user data. - Introduced a new database table `fa_smoke_ai_next_smoke` to store structured AI time node suggestions. - Updated smoke handler and service to integrate the new AI next smoke time functionality. - Enhanced documentation to reflect the new API endpoint and its usage, including details on how to generate AI time nodes.
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package routes
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
smokehandler "wx_service/internal/smoke/handler"
|
|
)
|
|
|
|
func registerSmokeRoutes(protected *gin.RouterGroup, smokeHandler *smokehandler.SmokeHandler) {
|
|
// 戒烟/抽烟记录(与 video 去水印功能在路由前缀上区分开)
|
|
smoke := protected.Group("/smoke")
|
|
{
|
|
// 首次进入/基础信息(用于基准、AI 个性化、作息规避等)
|
|
smoke.GET("/profile", smokeHandler.GetProfile)
|
|
smoke.PUT("/profile", smokeHandler.UpsertProfile)
|
|
|
|
// 不使用 AI 时的默认“下次抽烟时间”建议(阶梯式延时)
|
|
smoke.GET("/next_smoke_time", smokeHandler.GetNextSmokeTime)
|
|
|
|
smoke.GET("/dashboard", smokeHandler.Dashboard)
|
|
smoke.POST("/logs", smokeHandler.Create)
|
|
smoke.POST("/logs/resisted", smokeHandler.Resist)
|
|
smoke.GET("/logs", smokeHandler.List)
|
|
smoke.GET("/logs/latest", smokeHandler.LatestLogs)
|
|
smoke.GET("/logs/:id", smokeHandler.Get)
|
|
smoke.PUT("/logs/:id", smokeHandler.Update)
|
|
smoke.DELETE("/logs/:id", smokeHandler.Delete)
|
|
|
|
// AI 戒烟建议(会员优先;非会员需看广告解锁)
|
|
smoke.GET("/ai/advice", smokeHandler.GetAIAdvice)
|
|
smoke.POST("/ai/advice_unlocks", smokeHandler.UnlockAIAdvice)
|
|
|
|
// AI 下次抽烟时间建议(结构化时间节点)
|
|
smoke.GET("/ai/next_smoke_time", smokeHandler.GetAINextSmokeTime)
|
|
}
|
|
}
|