commit 9c3997735a38da6d42e53a0fc99165e5ada9f191
parent 88a3392f33067f38cceb9b7180773bde75273e2f
Author: triesap <tyson@radroots.org>
Date: Mon, 21 Sep 2026 13:53:57 +0000
core: implement availability and window checks
Diffstat:
2 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/src/hyf_application/match_checks.mojo b/src/hyf_application/match_checks.mojo
@@ -79,3 +79,32 @@ def check_area(area_required: String, area_known: String) raises -> ConstraintAs
def delivery_mention_verifies_area() -> Bool:
return False
+
+
+def check_availability(available_state: String) raises -> ConstraintAssessment:
+ if available_state == "known":
+ return constraint_assessment(
+ "availability", "pass", True, "availability_known"
+ )
+ return constraint_assessment(
+ "availability", "unknown", True, "stock_unknown"
+ )
+
+
+def check_window(
+ required_start: String,
+ required_end: String,
+ offered_start: String,
+ offered_end: String,
+) raises -> ConstraintAssessment:
+ if String(required_start).strip().byte_length() == 0:
+ return constraint_assessment("window", "pass", True, "window_optional")
+ if String(offered_start).strip().byte_length() == 0:
+ return constraint_assessment("window", "unknown", True, "window_mismatch")
+ if offered_start <= required_end and required_start <= offered_end:
+ return constraint_assessment("window", "pass", True, "window_overlap")
+ return constraint_assessment("window", "fail", True, "window_mismatch")
+
+
+def weekend_similarity_satisfies_specific_window() -> Bool:
+ return False
diff --git a/tests/test_application.mojo b/tests/test_application.mojo
@@ -446,3 +446,20 @@ def test_fulfillment_method_and_area_checks() raises:
assert_equal(check_area("Vancouver", "").result, "unknown")
assert_equal(check_area("", "").result, "pass")
assert_true(not delivery_mention_verifies_area())
+
+
+from hyf_application.match_checks import (
+ check_availability,
+ check_window,
+ weekend_similarity_satisfies_specific_window,
+)
+
+
+def test_availability_and_window_checks() raises:
+ assert_equal(check_availability("known").result, "pass")
+ assert_equal(check_availability("unknown").result, "unknown")
+ assert_equal(check_window("2026-09-25", "2026-09-25", "2026-09-25", "2026-09-25").result, "pass")
+ assert_equal(check_window("2026-09-25", "2026-09-25", "2026-09-27", "2026-09-27").result, "fail")
+ assert_equal(check_window("2026-09-25", "2026-09-25", "", "").result, "unknown")
+ assert_equal(check_window("", "", "", "").result, "pass")
+ assert_true(not weekend_similarity_satisfies_specific_window())