summaryrefslogtreecommitdiff
path: root/models/fertilizer-product.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-06 17:55:58 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-06 17:55:58 +0100
commitc3557a7d5f54d7a9cb7fb2ece9487332c264236e (patch)
tree1a87077374fba18f4ef38fb1ae084f6884e3cd5b /models/fertilizer-product.rkt
parentc7ec194f4a6c3dc879c24d8075bfe05a7687f976 (diff)
Update model contracts.
Great use of my new modules to factor out common model contract logic!
Diffstat (limited to 'models/fertilizer-product.rkt')
-rw-r--r--models/fertilizer-product.rkt13
1 files changed, 6 insertions, 7 deletions
diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt
index 7c1ca54..f7a5e9c 100644
--- a/models/fertilizer-product.rkt
+++ b/models/fertilizer-product.rkt
@@ -10,9 +10,7 @@
[create-fertilizer-product! (-> string? string? nutrient-value-hash/c fertilizer-product?)]
[get-fertilizer-products (-> (listof fertilizer-product?))]
[get-fertilizer-product
- (->* ()
- (#:id exact-nonnegative-integer? #:canonical-name string?)
- (or/c fertilizer-product? #f))]
+ (->* () (#:id db-id? #:canonical-name string?) (or/c fertilizer-product? #f))]
[get-fertilizer-product-values (-> fertilizer-product-or-id/c nutrient-value-hash/c)]
[get-fertilizer-product-value
(-> fertilizer-product-or-id/c nutrient? maybe-nutrient-value?)]
@@ -22,7 +20,9 @@
db
sql
"../db/conn.rkt"
- "nutrient.rkt")
+ "nutrient.rkt"
+ "nutrient-value.rkt"
+ "utils.rkt")
(struct fertilizer-product (id canonical-name nutrient-values brand-name)
#:transparent
@@ -46,12 +46,11 @@
(~a (nutrient-canonical-name n) #:min-width 14)
(~a v #:max-width 6 #:align 'right)))))
-(define fertilizer-product-id? exact-nonnegative-integer?)
-(define fertilizer-product-or-id/c (or/c fertilizer-product? fertilizer-product-id?))
+(define fertilizer-product-or-id/c (or/c fertilizer-product? db-id?))
(define (->fp-id fp-or-id)
(match fp-or-id
- [(? fertilizer-product-id? id) id]
+ [(? db-id? id) id]
[(fertilizer-product id _ _ _) id]))
;; CREATE
Copyright 2019--2026 Marius PETER