Class: Item::Materials::Checks::EngineeringAlert

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/item/materials/checks/engineering_alert.rb

Overview

Engineering-specific alerts for room configuration validation.
These alerts surface important information for engineers designing installation plans.

Defined Under Namespace

Classes: Result

Constant Summary collapse

AREA_OVERAGE_TOLERANCE =
1.05
MIN_COVERAGE_PERCENT =
70
LARGE_BREAKER_AMPS_THRESHOLD =
30

Instance Method Summary collapse

Instance Method Details

#process(container:, options: {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/services/item/materials/checks/engineering_alert.rb', line 18

def process(container:, options: {})
  return Result.new(status: :skipped) unless qualify?(container)

  material_alerts = []

  check_requested_vs_designed_voltage(material_alerts, container, options)
  check_requested_vs_designed_cable_spacing(material_alerts, container, options)
  check_mixed_heating_element_voltages(material_alerts, container, options)
  check_heating_elements_exceed_room_area(material_alerts, container, options)
  check_low_coverage_percentage(material_alerts, container, options)
  check_heat_loss_exceeds_supply(material_alerts, container, options)
  check_missing_expansion_joint_spacing(material_alerts, container, options)
  check_large_breaker_requirements(material_alerts, container, options)

  Result.new(status: :ok, alerts: material_alerts)
end

#qualify?(container) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
# File 'app/services/item/materials/checks/engineering_alert.rb', line 14

def qualify?(container)
  container.is_a?(RoomConfiguration)
end