package activity import ( "context" "gitlab.guxuan.icu/jinshan_community/internal/config" "github.com/gin-gonic/gin" "gitlab.guxuan.icu/jinshan_community/internal/mods/activity/api" "gitlab.guxuan.icu/jinshan_community/internal/mods/activity/schema" "gorm.io/gorm" ) type Activity struct { DB *gorm.DB ActivityAPI *api.Activity ActivityCategoryAPI *api.ActivityCategory ReciprocityAPI *api.Reciprocity } func (a *Activity) AutoMigrate(ctx context.Context) error { return a.DB.AutoMigrate(new(schema.Activity), new(schema.ActivityCategory), new(schema.Reciprocity)) } 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) } activityCategory := v1.Group("activity-categories") { activityCategory.GET("", a.ActivityCategoryAPI.Query) activityCategory.GET(":id", a.ActivityCategoryAPI.Get) activityCategory.POST("", a.ActivityCategoryAPI.Create) activityCategory.PUT(":id", a.ActivityCategoryAPI.Update) activityCategory.DELETE(":id", a.ActivityCategoryAPI.Delete) } reciprocity := v1.Group("reciprocities") { reciprocity.GET("", a.ReciprocityAPI.Query) reciprocity.GET(":id", a.ReciprocityAPI.Get) reciprocity.POST("", a.ReciprocityAPI.Create) reciprocity.PUT(":id", a.ReciprocityAPI.Update) reciprocity.DELETE(":id", a.ReciprocityAPI.Delete) } return nil } func (a *Activity) Release(ctx context.Context) error { return nil }