summaryrefslogtreecommitdiff
path: root/models/nutrient-target.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'models/nutrient-target.rkt')
-rw-r--r--models/nutrient-target.rkt44
1 files changed, 19 insertions, 25 deletions
diff --git a/models/nutrient-target.rkt b/models/nutrient-target.rkt
index 922dba7..77d0b4c 100644
--- a/models/nutrient-target.rkt
+++ b/models/nutrient-target.rkt
@@ -1,27 +1,22 @@
#lang racket
-(provide
- ;; Model struct
- nutrient-target
- nutrient-target?
- nutrient-target-id
- (rename-out
- [nutrient-target-effective-on nutrient-target-date]
- [nutrient-target-nutrient-values nutrient-target-values])
- (contract-out
- ;; SQL CRUD
- [create-nutrient-target! (-> string?
- (listof nutrient-value-pair/c)
- nutrient-target?)]
- [get-nutrient-targets (-> (listof nutrient-target?))]
- [get-nutrient-target (->* ()
- (#:id (or/c #f exact-nonnegative-integer?)
- #:effective-on (or/c #f string?))
- (or/c nutrient-target? #f))]
- [get-nutrient-target-values (-> nutrient-target? (listof nutrient-value-pair/c))]
- [get-nutrient-target-value (-> nutrient-target? nutrient? number?)]
- [get-latest-nutrient-target-value (-> nutrient? (or/c number? #f))]
- [delete-nutrient-target! (-> nutrient-target? void?)]))
+(provide nutrient-target
+ nutrient-target?
+ nutrient-target-id
+ (rename-out [nutrient-target-effective-on nutrient-target-date]
+ [nutrient-target-nutrient-values nutrient-target-values])
+ (contract-out
+ [create-nutrient-target! (-> string? (listof nutrient-value-pair/c) nutrient-target?)]
+ [get-nutrient-targets (-> (listof nutrient-target?))]
+ [get-nutrient-target
+ (->* ()
+ (#:id (or/c #f exact-nonnegative-integer?) #:effective-on (or/c #f string?))
+ (or/c nutrient-target? #f))]
+ [get-nutrient-target-values (-> nutrient-target? (listof nutrient-value-pair/c))]
+ [get-nutrient-target-value (-> nutrient-target? nutrient? number?)]
+ [get-latest-nutrient-target-value (-> nutrient? (or/c number? #f))]
+ [get-latest-nutrient-target-hash (-> (hash/c nutrient? number?))]
+ [delete-nutrient-target! (-> nutrient-target? void?)]))
(require racket/contract
db
@@ -29,7 +24,6 @@
"../db/conn.rkt"
"nutrient.rkt")
-;; Instances of this struct are persisted in the nutrient_targets table.
(struct nutrient-target (id effective-on nutrient-values)
#:transparent
#:property prop:custom-write
@@ -143,14 +137,14 @@
n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
- #:where (= nm.id ,(nutrient-target-id nutrient-target))))])
+ #:where (= nt.id ,(nutrient-target-id nutrient-target))))])
(cons (nutrient nutrient-id name formula) value_ppm)))
(define (get-nutrient-target-value nutrient-target nutrient)
(query-maybe-value (current-conn)
(select value_ppm
#:from (TableExpr:AST ,joined)
- #:where (and (= nm.id ,(nutrient-target-id nutrient-target))
+ #:where (and (= nt.id ,(nutrient-target-id nutrient-target))
(= nv.nutrient_id ,(nutrient-id nutrient))))))
(define (get-latest-nutrient-target-value nutrient)
Copyright 2019--2026 Marius PETER