package customer import ( "context" "gitlab.guxuan.icu/jinshan_community/internal/config" "github.com/gin-gonic/gin" "gitlab.guxuan.icu/jinshan_community/internal/mods/customer/api" "gitlab.guxuan.icu/jinshan_community/internal/mods/customer/schema" "gorm.io/gorm" ) type Customer struct { DB *gorm.DB CustomerAPI *api.Customer BalanceAPI *api.Balance } func (a *Customer) AutoMigrate(ctx context.Context) error { return a.DB.AutoMigrate(new(schema.Customer), new(schema.Balance)) } func (a *Customer) Init(ctx context.Context) error { if config.C.Storage.DB.AutoMigrate { if err := a.AutoMigrate(ctx); err != nil { return err } } return nil } func (a *Customer) RegisterV1Routers(ctx context.Context, v1 *gin.RouterGroup) error { customer := v1.Group("customers") { customer.GET("", a.CustomerAPI.Query) customer.GET(":id", a.CustomerAPI.Get) customer.POST("", a.CustomerAPI.Create) customer.PUT(":id", a.CustomerAPI.Update) customer.DELETE(":id", a.CustomerAPI.Delete) } balance := v1.Group("balances") { balance.GET("", a.BalanceAPI.Query) balance.GET(":id", a.BalanceAPI.Get) balance.POST("", a.BalanceAPI.Create) balance.PUT(":id", a.BalanceAPI.Update) balance.DELETE(":id", a.BalanceAPI.Delete) } return nil } func (a *Customer) Release(ctx context.Context) error { return nil }