package service import ( appErrors "nex/backend/pkg/errors" "nex/backend/internal/domain" "nex/backend/internal/repository" ) type modelService struct { modelRepo repository.ModelRepository providerRepo repository.ProviderRepository } func NewModelService(modelRepo repository.ModelRepository, providerRepo repository.ProviderRepository) ModelService { return &modelService{modelRepo: modelRepo, providerRepo: providerRepo} } func (s *modelService) Create(model *domain.Model) error { // Verify provider exists _, err := s.providerRepo.GetByID(model.ProviderID) if err != nil { return appErrors.ErrProviderNotFound } model.Enabled = true return s.modelRepo.Create(model) } func (s *modelService) Get(id string) (*domain.Model, error) { return s.modelRepo.GetByID(id) } func (s *modelService) List(providerID string) ([]domain.Model, error) { return s.modelRepo.List(providerID) } func (s *modelService) Update(id string, updates map[string]interface{}) error { // If updating provider_id, verify new provider exists if providerID, ok := updates["provider_id"].(string); ok { _, err := s.providerRepo.GetByID(providerID) if err != nil { return appErrors.ErrProviderNotFound } } return s.modelRepo.Update(id, updates) } func (s *modelService) Delete(id string) error { return s.modelRepo.Delete(id) }