37 lines
701 B
Go
37 lines
701 B
Go
// Filename: internal/domain/upstream/module.go
|
|
package upstream
|
|
|
|
import (
|
|
"gemini-balancer/internal/models"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Module struct {
|
|
service *Service
|
|
handler *Handler
|
|
}
|
|
|
|
func NewModule(db *gorm.DB) *Module {
|
|
service := NewService(db)
|
|
handler := NewHandler(service)
|
|
|
|
return &Module{
|
|
service: service,
|
|
handler: handler,
|
|
}
|
|
}
|
|
|
|
// === 领域暴露的公共API ===
|
|
|
|
// SelectActiveWeighted
|
|
|
|
func (m *Module) SelectActiveWeighted(upstreams []*models.UpstreamEndpoint) (*models.UpstreamEndpoint, error) {
|
|
return m.service.SelectActiveWeighted(upstreams)
|
|
}
|
|
|
|
func (m *Module) RegisterRoutes(router *gin.RouterGroup) {
|
|
m.handler.RegisterRoutes(router)
|
|
}
|