From 2cdcbb3784415a695b9c55b80f85a51ddee5e464 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Fri, 20 Mar 2026 21:52:20 +0000 Subject: [PATCH] When pool are green or murky, immediately create signal from them. --- platform/review.go | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/platform/review.go b/platform/review.go index d9c3a566..415973a7 100644 --- a/platform/review.go +++ b/platform/review.go @@ -79,8 +79,8 @@ func commitReviewPool(ctx context.Context, txn bob.Tx, user User, review_task_po if err != nil { return nhttp.NewError("find feature pool: %w", err) } + condition := feature_pool.Condition if update.Condition != nil { - var condition enums.Poolconditiontype err := condition.Scan(*update.Condition) if err != nil { return nhttp.NewErrorStatus(http.StatusBadRequest, "unrecognized condition %s", update.Condition) @@ -133,5 +133,31 @@ func commitReviewPool(ctx context.Context, txn bob.Tx, user User, review_task_po return nhttp.NewError("save feature: %w", err) } } + log.Debug().Str("condition", string(condition)).Int32("id", review_task_pool.ReviewTaskID).Msg("checking") + // if the pool is either murkey or green, immediately create a signal from it + if condition == enums.PoolconditiontypeGreen || condition == enums.PoolconditiontypeMurky { + feature, err := models.FindFeature(ctx, txn, feature_pool.FeatureID) + if err != nil { + return nhttp.NewError("find feature %d: %w", feature_pool.FeatureID, err) + } + signal, err := models.Signals.Insert(&models.SignalSetter{ + Addressed: omitnull.FromPtr[time.Time](nil), + Addressor: omitnull.FromPtr[int32](nil), + Created: omit.From(time.Now()), + Creator: omit.From[int32](int32(user.ID)), + //ID: omit.Val[int32], + OrganizationID: omit.From(user.Organization.ID()), + Species: omitnull.FromPtr[enums.Mosquitospecies](nil), + Title: omit.From[string](""), + Type: omit.From(enums.SignaltypeFlyoverPool), + SiteID: omitnull.From(feature.SiteID), + Location: omit.From[string](feature.Location.GetOr("")), + }).One(ctx, txn) + if err != nil { + return nhttp.NewError("create signal: %w", err) + } + event.Created(event.TypeSignal, user.Organization.ID(), strconv.Itoa(int(signal.ID))) + log.Debug().Int32("id", signal.ID).Msg("created pool signal") + } return nil }