[Racket] Ferti hydroponic nutrient solver, redux.
Add latest nutrient measurement/target hash retrieval function.
Changed files
models/nutrient-measurement.rkt
@@ -148,6 +148,21 @@
148
148
#:desc
149
149
#:limit 1)))
150
150
151
Added:
(define (get-latest-nutrient-measurement-hash)
152
Added:
(for/hash ([(n-id n-name n-formula residual-rows)
153
Added:
(in-query (current-conn)
154
Added:
(select n.id
155
Added:
n.canonical_name
156
Added:
n.formula
157
Added:
nm.measured_on
158
Added:
nv.value_ppm
159
Added:
#:from (TableExpr:AST ,joined)
160
Added:
#:order-by nm.measured_on
161
Added:
#:desc)
162
Added:
#:group '(#(0 1 2)))])
163
Added:
;; residual-rows is a non-empty list of vectors: #(measured_on value_ppm)
164
Added:
(match-define (vector _measured-on value-ppm) (first residual-rows))
165
Added:
(values (nutrient n-id n-name n-formula) value-ppm)))
151
166
152
167
;; UPDATE
153
168
models/nutrient-target.rkt
@@ -142,6 +142,21 @@
142
142
#:desc
143
143
#:limit 1)))
144
144
145
Added:
(define (get-latest-nutrient-target-hash)
146
Added:
(for/hash ([(n-id n-name n-formula residual-rows)
147
Added:
(in-query (current-conn)
148
Added:
(select n.id
149
Added:
n.canonical_name
150
Added:
n.formula
151
Added:
nt.effective_on
152
Added:
nv.value_ppm
153
Added:
#:from (TableExpr:AST ,joined)
154
Added:
#:order-by nt.effective_on
155
Added:
#:desc)
156
Added:
#:group '(#(0 1 2)))])
157
Added:
;; residual-rows is a non-empty list of vectors: #(effective_on value_ppm)
158
Added:
(match-define (vector _effective-on value-ppm) (first residual-rows))
159
Added:
(values (nutrient n-id n-name n-formula) value-ppm)))
145
160
146
161
;; UPDATE
147
162