2025-06-19 10:35:26 +08:00

56 lines
1.3 KiB
Go

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
}