Class: Item::Materials::Checks::EngineeringAlert
- Inherits:
-
BaseService
- Object
- BaseService
- Item::Materials::Checks::EngineeringAlert
- 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, ) check_requested_vs_designed_cable_spacing(material_alerts, container, ) check_mixed_heating_element_voltages(material_alerts, container, ) check_heating_elements_exceed_room_area(material_alerts, container, ) check_low_coverage_percentage(material_alerts, container, ) check_heat_loss_exceeds_supply(material_alerts, container, ) check_missing_expansion_joint_spacing(material_alerts, container, ) check_large_breaker_requirements(material_alerts, container, ) Result.new(status: :ok, alerts: material_alerts) end |
#qualify?(container) ⇒ Boolean
14 15 16 |
# File 'app/services/item/materials/checks/engineering_alert.rb', line 14 def qualify?(container) container.is_a?(RoomConfiguration) end |