package service import ( appErrors "nex/backend/pkg/errors" "nex/backend/internal/domain" "nex/backend/internal/repository" ) type routingService struct { modelRepo repository.ModelRepository providerRepo repository.ProviderRepository } func NewRoutingService(modelRepo repository.ModelRepository, providerRepo repository.ProviderRepository) RoutingService { return &routingService{modelRepo: modelRepo, providerRepo: providerRepo} } func (s *routingService) RouteByModelName(providerID, modelName string) (*domain.RouteResult, error) { model, err := s.modelRepo.FindByProviderAndModelName(providerID, modelName) if err != nil { return nil, appErrors.ErrModelNotFound } if !model.Enabled { return nil, appErrors.ErrModelDisabled } provider, err := s.providerRepo.GetByID(model.ProviderID) if err != nil { return nil, appErrors.ErrProviderNotFound } if !provider.Enabled { return nil, appErrors.ErrProviderDisabled } return &domain.RouteResult{ Provider: provider, Model: model, }, nil }