diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-13 16:18:23 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-13 16:18:23 +0100 |
| commit | 96a7702d4f8fe7840325ea75564801409d63d821 (patch) | |
| tree | d38a9b233ade8502b8988482ae098affd4de63dc /models/crop-requirement.rkt | |
| parent | 7b09445140983623173203c4594bb54dcd55fe1e (diff) | |
Use nutrient-value-pair/c contract throughout domain model.
Diffstat (limited to 'models/crop-requirement.rkt')
| -rw-r--r-- | models/crop-requirement.rkt | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt index 23740e7..e5f8ae6 100644 --- a/models/crop-requirement.rkt +++ b/models/crop-requirement.rkt @@ -1,14 +1,14 @@ #lang racket (provide - ;; Struct definitions + ;; Model struct crop-requirement crop-requirement? crop-requirement-id crop-requirement-profile crop-requirement-crop-id - ;; SQL CRUD (contract-out + ;; SQL CRUD [create-crop-requirement! (->* (string? - (listof (cons/c nutrient? number?))) + (listof nutrient-value-pair/c)) ((or/c #f crop?)) crop-requirement?)] [get-crop-requirements (-> (listof crop-requirement?))] @@ -16,10 +16,14 @@ (#:id (or/c #f exact-nonnegative-integer?) #:profile (or/c #f string?)) (or/c crop-requirement? #f))] - [get-crop-requirement-values (-> crop-requirement? (listof (cons/c nutrient? number?)))] + [get-crop-requirement-values (-> crop-requirement? (listof nutrient-value-pair/c))] [get-crop-requirement-value (-> crop-requirement? nutrient? number?)] [get-latest-crop-requirement-value (-> nutrient? number?)] - [delete-crop-requirement! (-> crop-requirement? void?)])) + [delete-crop-requirement! (-> crop-requirement? void?)] + ;; Helpers + [average-crop-requirement-nutrient-values (-> (listof (cons/c crop-requirement? + (and/c real? (>=/c 0) (<=/c 100)))) + (listof nutrient-value-pair/c))])) (require racket/contract db |