farm_changes.mojo (1027B)
1 from std.collections import List, Optional 2 3 from hyf_core.domain.supply_change import ProposedSupplyChange, proposed_change 4 5 6 def interpret_update_operation(verb: String) -> String: 7 var lowered = verb.lower() 8 if lowered == "another" or lowered == "more" or lowered == "added": 9 return "addition" 10 if lowered == "left" or lowered == "remaining": 11 return "remaining" 12 if lowered == "total": 13 return "replacement" 14 if lowered == "sold out" or lowered == "gone" or lowered == "withdrawn": 15 return "withdrawal" 16 if lowered == "actually" or lowered == "correction": 17 return "correction" 18 return "unresolved" 19 20 21 def interpret_update_change( 22 verb: String, target_kind: String, target_id: Optional[String] 23 ) raises -> ProposedSupplyChange: 24 return proposed_change( 25 target_kind=target_kind, 26 target_id=target_id, 27 operation=interpret_update_operation(verb), 28 expected_revision=None, 29 ) 30 31 32 def operation_is_proposal() -> Bool: 33 return True