mabuseif commited on
Commit
696c0a8
·
verified ·
1 Parent(s): 60e4ead

Upload data_validation.py

Browse files
Files changed (1) hide show
  1. app/data_validation.py +21 -1
app/data_validation.py CHANGED
@@ -142,7 +142,7 @@ class DataValidation:
142
  # Check if any components exist
143
  if not any(components.values()):
144
  is_valid = False
145
- messages.append("At least one building component (wall, roof, floor, window, or door) is required.")
146
 
147
  # Check wall components
148
  for i, wall in enumerate(components.get("walls", [])):
@@ -228,6 +228,26 @@ class DataValidation:
228
  is_valid = False
229
  messages.append(f"Door #{i+1}: U-value must be greater than zero.")
230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  # Check for minimum requirements
232
  if not components.get("walls", []):
233
  messages.append("Warning: No walls defined. At least one wall is recommended.")
 
142
  # Check if any components exist
143
  if not any(components.values()):
144
  is_valid = False
145
+ messages.append("At least one building component (wall, roof, floor, window, door, or skylight) is required.")
146
 
147
  # Check wall components
148
  for i, wall in enumerate(components.get("walls", [])):
 
228
  is_valid = False
229
  messages.append(f"Door #{i+1}: U-value must be greater than zero.")
230
 
231
+ # Check skylight components
232
+ for i, skylight in enumerate(components.get("skylights", [])):
233
+ # Check required fields
234
+ if not skylight.name:
235
+ is_valid = False
236
+ messages.append(f"Skylight #{i+1}: Name is required.")
237
+
238
+ # Check numeric fields
239
+ if skylight.area <= 0:
240
+ is_valid = False
241
+ messages.append(f"Skylight #{i+1}: Area must be greater than zero.")
242
+
243
+ if skylight.u_value <= 0:
244
+ is_valid = False
245
+ messages.append(f"Skylight #{i+1}: U-value must be greater than zero.")
246
+
247
+ if skylight.shgc <= 0 or skylight.shgc > 1:
248
+ is_valid = False
249
+ messages.append(f"Skylight #{i+1}: SHGC must be between 0 and 1.")
250
+
251
  # Check for minimum requirements
252
  if not components.get("walls", []):
253
  messages.append("Warning: No walls defined. At least one wall is recommended.")