diff --git a/usecase/device_details.go b/usecase/device_details.go index 156dae2..4f2de14 100644 --- a/usecase/device_details.go +++ b/usecase/device_details.go @@ -554,6 +554,21 @@ func (u *deviceDetailsUseCase) UpdateDeviceDetails(id uuid.UUID, deviceDTO req.U } updates["tower_id"] = *deviceDTO.TowerID } + + if deviceDTO.OLTID != nil { + // Validate OLT exists + oltExists, err := u.ValidateOLTExists(*deviceDTO.OLTID) + if err != nil { + return fmt.Errorf("failed to validate OLT: %w", err) + } + if !oltExists { + return fmt.Errorf("OLT with ID %s not found", deviceDTO.OLTID.String()) + } + + updates["olt_id"] = *deviceDTO.OLTID + } + + log.Printf("Updating device %s with fields: %+v", id, updates) if len(updates) == 0 { return errors.New("no fields to update")