2025-06-19 10:33:58 +08:00

74 lines
2.2 KiB
Go

package activity
import (
"context"
"github.guxuan/haibei/internal/config"
"github.com/gin-gonic/gin"
"github.guxuan/haibei/internal/mods/activity/api"
"github.guxuan/haibei/internal/mods/activity/schema"
"gorm.io/gorm"
)
type Activity struct {
DB *gorm.DB
ActivityAPI *api.Activity
QuestionnaireAPI *api.Questionnaire
ActivityDetailAPI *api.ActivityDetail
QeustionDetailAPI *api.QeustionDetail
}
func (a *Activity) AutoMigrate(ctx context.Context) error {
return a.DB.AutoMigrate(new(schema.Activity), new(schema.Questionnaire), new(schema.ActivityDetail), new(schema.QeustionDetail), new(schema.House), new(schema.HouseArticle))
}
func (a *Activity) Init(ctx context.Context) error {
if config.C.Storage.DB.AutoMigrate {
if err := a.AutoMigrate(ctx); err != nil {
return err
}
}
return nil
}
func (a *Activity) RegisterV1Routers(ctx context.Context, v1 *gin.RouterGroup) error {
activity := v1.Group("activities")
{
activity.GET("", a.ActivityAPI.Query)
activity.GET(":id", a.ActivityAPI.Get)
activity.POST("", a.ActivityAPI.Create)
activity.PUT(":id", a.ActivityAPI.Update)
activity.DELETE(":id", a.ActivityAPI.Delete)
}
questionnaire := v1.Group("questionnaires")
{
questionnaire.GET("", a.QuestionnaireAPI.Query)
questionnaire.GET(":id", a.QuestionnaireAPI.Get)
questionnaire.POST("", a.QuestionnaireAPI.Create)
questionnaire.PUT(":id", a.QuestionnaireAPI.Update)
questionnaire.DELETE(":id", a.QuestionnaireAPI.Delete)
}
activityDetail := v1.Group("activity-details")
{
activityDetail.GET("", a.ActivityDetailAPI.Query)
activityDetail.GET(":id", a.ActivityDetailAPI.Get)
activityDetail.POST("", a.ActivityDetailAPI.Create)
activityDetail.PUT(":id", a.ActivityDetailAPI.Update)
activityDetail.DELETE(":id", a.ActivityDetailAPI.Delete)
}
qeustionDetail := v1.Group("qeustion-details")
{
qeustionDetail.GET("", a.QeustionDetailAPI.Query)
qeustionDetail.GET(":id", a.QeustionDetailAPI.Get)
qeustionDetail.POST("", a.QeustionDetailAPI.Create)
qeustionDetail.PUT(":id", a.QeustionDetailAPI.Update)
qeustionDetail.DELETE(":id", a.QeustionDetailAPI.Delete)
}
return nil
}
func (a *Activity) Release(ctx context.Context) error {
return nil
}