From b39cd3ba72579112e1a7495da49d3d86d482f2e3 Mon Sep 17 00:00:00 2001 From: Hein Date: Sun, 26 Apr 2026 17:56:30 +0200 Subject: [PATCH] feat(generatedmodels): add ThoughtCount to ModelPublicProjects * Introduced ThoughtCount field for scanning computed column * Added patch script to ensure ThoughtCount is included in generated model --- .../generatedmodels/sql_public_projects.go | 1 + scripts/generate-models.sh | 2 ++ scripts/patch-generated-models.sh | 26 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 scripts/patch-generated-models.sh diff --git a/internal/generatedmodels/sql_public_projects.go b/internal/generatedmodels/sql_public_projects.go index 4579ae3..efd9441 100644 --- a/internal/generatedmodels/sql_public_projects.go +++ b/internal/generatedmodels/sql_public_projects.go @@ -15,6 +15,7 @@ type ModelPublicProjects struct { GUID resolvespec_common.SqlUUID `bun:"guid,type:uuid,default:gen_random_uuid(),notnull," json:"guid"` LastActiveAt resolvespec_common.SqlTimeStamp `bun:"last_active_at,type:timestamptz,default:now(),nullzero," json:"last_active_at"` Name resolvespec_common.SqlString `bun:"name,type:text,notnull," json:"name"` + ThoughtCount resolvespec_common.SqlInt64 `bun:"thought_count,scanonly" json:"thought_count"` RelProjectIDPublicThoughts []*ModelPublicThoughts `bun:"rel:has-many,join:guid=project_id" json:"relprojectidpublicthoughts,omitempty"` // Has many ModelPublicThoughts RelProjectIDPublicStoredFiles []*ModelPublicStoredFiles `bun:"rel:has-many,join:guid=project_id" json:"relprojectidpublicstoredfiles,omitempty"` // Has many ModelPublicStoredFiles RelProjectIDPublicChatHistories []*ModelPublicChatHistories `bun:"rel:has-many,join:guid=project_id" json:"relprojectidpublicchathistories,omitempty"` // Has many ModelPublicChatHistories diff --git a/scripts/generate-models.sh b/scripts/generate-models.sh index 68ed6e0..7ff8191 100755 --- a/scripts/generate-models.sh +++ b/scripts/generate-models.sh @@ -53,4 +53,6 @@ for file in "${out_dir}"/*.go; do fi done +bash "${repo_root}/scripts/patch-generated-models.sh" + gofmt -w "${out_dir}"/*.go diff --git a/scripts/patch-generated-models.sh b/scripts/patch-generated-models.sh new file mode 100644 index 0000000..060b66a --- /dev/null +++ b/scripts/patch-generated-models.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +models_dir="${repo_root}/internal/generatedmodels" +projects_model="${models_dir}/sql_public_projects.go" + +if [[ ! -f "${projects_model}" ]]; then + echo "generated projects model not found: ${projects_model}" >&2 + exit 1 +fi + +# Ensure ModelPublicProjects can scan ResolveSpec computed column "thought_count". +if ! grep -q "ThoughtCount" "${projects_model}"; then + tmp_file="$(mktemp)" + awk ' + /Name[[:space:]]+resolvespec_common\.SqlString[[:space:]]+`bun:"name,type:text,notnull," json:"name"`/ { + print + print "\tThoughtCount resolvespec_common.SqlInt64 `bun:\"thought_count,scanonly\" json:\"thought_count\"`" + next + } + { print } + ' "${projects_model}" > "${tmp_file}" + mv "${tmp_file}" "${projects_model}" +fi +