#!/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" persona_arc_model="${models_dir}/sql_public_persona_arc.go" if [[ ! -f "${projects_model}" ]]; then echo "generated projects model not found: ${projects_model}" >&2 exit 1 fi if [[ ! -f "${persona_arc_model}" ]]; then echo "generated persona arc model not found: ${persona_arc_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 # relspec currently emits an incorrect int32 cast for persona_arc primary key updates. sed -i 's/m\.PersonaID = int32(newid)/m.PersonaID = newid/' "${persona_arc_model}" # Some join-table models import resolvespec_common without using it. for file in "${models_dir}"/*.go; do if ! grep -q 'resolvespec_common\.' "${file}"; then sed -i '/^[[:space:]]*resolvespec_common "github.com\/bitechdev\/ResolveSpec\/pkg\/spectypes"$/d' "${file}" fi done