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

65 lines
1.6 KiB
Go

package customer
import (
"context"
"github.guxuan/haibei/internal/config"
"github.com/gin-gonic/gin"
"github.guxuan/haibei/internal/mods/customer/api"
"github.guxuan/haibei/internal/mods/customer/schema"
"gorm.io/gorm"
)
type Customer struct {
DB *gorm.DB
CustomerAPI *api.Customer
BalanceAPI *api.Balance
ProductOrderAPI *api.ProductOrder
}
func (a *Customer) AutoMigrate(ctx context.Context) error {
return a.DB.AutoMigrate(new(schema.Customer), new(schema.Balance), new(schema.ProductOrder))
}
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)
}
productOrder := v1.Group("product-orders")
{
productOrder.GET("", a.ProductOrderAPI.Query)
productOrder.GET(":id", a.ProductOrderAPI.Get)
productOrder.POST("", a.ProductOrderAPI.Create)
productOrder.PUT(":id", a.ProductOrderAPI.Update)
productOrder.DELETE(":id", a.ProductOrderAPI.Delete)
}
return nil
}
func (a *Customer) Release(ctx context.Context) error {
return nil
}