Files
gemini-banlancer/internal/domain/upstream/module.go
2025-11-20 12:24:05 +08:00

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)
}